RTCPeerConnection

在 Delphi/C++Builder 中使用 WebRTC — ICE 负责连接,DTLS 1.3 负责密钥握手,SRTP 负责媒体,SCTP-over-DTLS 负责 DataChannel。无需浏览器。

TsgcRTCPeerConnection

原生 Delphi WebRTC 对等端 — 镜像 W3C RTCPeerConnection 接口(CreateOffer / CreateAnswer / SetRemoteDescription / AddIceCandidate / DataChannel),由捆绑的 ICE、DTLS 1.3、SRTP 和 SCTP 栈支撑。

组件类

TsgcRTCPeerConnection

协议

WebRTC (W3C)

平台

Windows, macOS, Linux, iOS, Android

版本

Enterprise

提议 / 应答 / 连接

添加 ICE 服务器,CreateOffer,通过信令通道将 SDP 发送给远程对端,设置应答,数据路径即可建立。

uses
  sgcP2P;

var
  Peer: TsgcRTCPeerConnection;
  Channel: TsgcRTCDataChannel;
begin
  Peer := TsgcRTCPeerConnection.Create(nil);
  Peer.IceServers.Add('stun:stun.l.google.com:19302');

  Peer.OnLocalDescription := procedure(Sender: TObject;
    const aSDP: string)
  begin
    SignalToPeer(aSDP); // 通过您的 WebSocket / WebRTC 信令通道
  end;

  Peer.OnDataChannel := procedure(Sender: TObject;
    aChannel: TsgcRTCDataChannel)
  begin
    Channel := aChannel;
    aChannel.OnMessage := procedure(Sender: TObject;
      const aText: string)
    begin
      Memo1.Lines.Add(aText);
    end;
  end;

  // 发送方
  Channel := Peer.CreateDataChannel('chat');
  Peer.CreateOffer;
end;
// uses: sgcP2P
TsgcRTCPeerConnection *Peer = new TsgcRTCPeerConnection(this);
Peer->IceServers->Add("stun:stun.l.google.com:19302");
TsgcRTCDataChannel *Channel = Peer->CreateDataChannel("chat");
Peer->CreateOffer();

内部功能

将 ICE、DTLS 1.3、SRTP 和 SCTP 捆绑到单个组件的原生 WebRTC 对等端 — 镜像 W3C RTCPeerConnection API。

SDP 提议/应答

CreateOfferCreateAnswer 生成带正确 ICE-UFRAG / ICE-PWD / FINGERPRINT / SETUP 属性的 RFC 8866 SDP;SetRemoteDescription 接收对端的 SDP。

ICE 驱动的连接

内部使用 TsgcICEClient 进行候选收集和连接检查;AddIceCandidate 在远程候选从信令中陆续到达时馈入。

DTLS 1.3 密钥协商

在选定的 ICE 候选对可写后,组件执行 DTLS 1.3 握手(RFC 9147)并通过 SRTP 提取器派生 SRTP 密钥。

DataChannel(SCTP-over-DTLS)

CreateDataChannel 打开多路复用在 DTLS 上的 SCTP 流 — 可靠/部分可靠、有序/无序,通过 BufferedAmount 实现背压。

媒体轨道

音频/视频轨道通过 SRTP 传输。配套的 TsgcWSPServer_RTCPeerConnection 服务器端信令组件让您构建 SFU 风格的中继器。

浏览器兼容

与浏览器 RTCPeerConnection 互操作 — 已针对 Chromium / Firefox / Safari 测试。相同的 SDP 语义、相同的 ICE 候选、相同的 DataChannel 线格式。

规范与参考

本组件所实现协议的权威来源。

文档与演示

直达组件参考,获取可立即运行的演示项目,并下载试用版。

在线帮助 — TsgcRTCPeerConnection 本组件的完整属性、方法和事件参考。
演示项目 — Demos\35.P2P\05.RTCPeerConnection 可立即运行的示例项目,随 sgcWebSockets 包一起提供 — 请从下方下载试用版。
技术文档 (PDF) 仅涵盖本组件的功能、快速入门、Delphi 和 C++ Builder 代码示例及主要参考来源。
用户手册 (PDF) 涵盖库中每个组件的综合手册。

准备好在 Delphi 中运行 WebRTC 了吗?

下载免费试用版,为您的 Delphi 应用程序添加原生 RTCPeerConnection。