RTCPeerConnection
Delphi/C++ Builder から WebRTC を使用できます。接続性のための ICE、鍵交換ハンドシェイクのための DTLS 1.3、メディアのための SRTP、データチャネルのための SCTP-over-DTLS を提供します。ブラウザは不要です。
Delphi/C++ Builder から WebRTC を使用できます。接続性のための ICE、鍵交換ハンドシェイクのための DTLS 1.3、メディアのための SRTP、データチャネルのための SCTP-over-DTLS を提供します。ブラウザは不要です。
ネイティブ Delphi WebRTC ピアです。内蔵の ICE、DTLS 1.3、SRTP、SCTP スタックをベースに W3C RTCPeerConnection インターフェース(CreateOffer / CreateAnswer / SetRemoteDescription / AddIceCandidate / DataChannel)を実装しています。
TsgcRTCPeerConnection
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); // over your WebSocket / WebRTC signalling
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;
// outbound side
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 を 1 つのコンポーネントに統合したネイティブ WebRTC ピアです。W3C RTCPeerConnection API を実装しています。
CreateOffer と CreateAnswer は、適切な ICE-UFRAG / ICE-PWD / FINGERPRINT / SETUP 属性を持つ RFC 8866 SDP を生成します。SetRemoteDescription がピアの SDP を取り込みます。
候補収集と接続確認に内部で TsgcICEClient を使用します。AddIceCandidate がシグナリングからトリクルされたリモート候補を受け付けます。
選択された ICE ペアが書き込み可能になると、コンポーネントが DTLS 1.3 ハンドシェイク(RFC 9147)を実行し、SRTP エクストラクター経由で SRTP 鍵を導出します。
CreateDataChannel は DTLS 上で多重化された SCTP ストリームを開きます。信頼性あり / 部分的信頼性あり、順序あり / 順序なし、BufferedAmount によるバックプレッシャーをサポートします。
音声 / 映像トラックは SRTP 経由で転送されます。サーバーサイドシグナリングコンポーネント TsgcWSPServer_RTCPeerConnection を使用して SFU スタイルのリレーを構築できます。
ブラウザの RTCPeerConnection と相互接続できます。Chromium / Firefox / Safari でテスト済みです。同じ SDP セマンティクス、ICE 候補、データチャネルのワイヤーフォーマットを使用します。
このコンポーネントが実装するプロトコルの公式ソースです。
コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。
| オンラインヘルプ — TsgcRTCPeerConnection このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\35.P2P\05.RTCPeerConnection すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。 | 開く | |
| 技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |