ICE Client
Delphi/C++ Builder で完全な ICE アルゴリズムを実行します。ホスト候補、サーバーリフレクシブ候補、リレー候補を収集し、STUN 接続確認を実行して RFC 8445 に従って最適なペアを選定します。
Delphi/C++ Builder で完全な ICE アルゴリズムを実行します。ホスト候補、サーバーリフレクシブ候補、リレー候補を収集し、STUN 接続確認を実行して RFC 8445 に従って最適なペアを選定します。
RFC 8445 ICE ステートマシンを実装しています。候補収集、優先順位付け、ペア生成、接続確認(USE-CANDIDATE 付き BindingRequest)、選定、同意の新鮮さ確認をサポートします。
TsgcICEClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
STUN/TURN ICE サーバーを設定し、GatherCandidates を呼び出して候補リストをピアと(帯域外で)交換した後、StartChecks を実行して動作するペアを選定してください。
uses
sgcP2P;
var
ICE: TsgcICEClient;
begin
ICE := TsgcICEClient.Create(nil);
ICE.IceServers.Add('stun:stun.l.google.com:19302');
ICE.IceServers.Add('turn:turn.example.com', 'alice', 'secret');
ICE.OnICELocalCandidate := procedure(Sender: TObject;
const aCandidate: string)
begin
SignalToPeer(aCandidate); // out-of-band SDP / WebSocket
end;
ICE.OnICEConnectionStateChanged := procedure(Sender: TObject;
const aState: TsgcICEConnectionState)
begin
Memo1.Lines.Add('ICE: ' + GetEnumName(TypeInfo(TsgcICEConnectionState), Ord(aState)));
end;
ICE.GatherCandidates;
end;
// uses: sgcP2P
TsgcICEClient *ICE = new TsgcICEClient(this);
ICE->IceServers->Add("stun:stun.l.google.com:19302");
ICE->GatherCandidates();
TsgcRTCPeerConnection の下層で動作する再利用可能な ICE エンジンです。WebRTC 以外の P2P でも単独で使用できます。
すべてのローカルインターフェースからホスト候補を、各 STUN サーバーからサーバーリフレクシブ候補を、各 TURN サーバーからリレー候補を、並行して収集します。
RFC 8445 §6.1.2 に従って候補ペアの優先度を計算し、確認リストを順序付けします。フリーズしたペアはそのファウンデーションが進むにつれてアンフリーズされます。
標準に従い、PRIORITY、ICE-CONTROLLING / ICE-CONTROLLED、USE-CANDIDATE 属性付きの STUN BindingRequest を送信します。トリガーされた確認は受信刺激によって発火します。
ペアが成功してコントロールエージェントが USE-CANDIDATE をフラグすると、コンポーネントが iceConnected で OnICEConnectionStateChanged を発火し、最終的に選択されたペアで iceCompleted を発火します。
RFC 7675 の同意新鮮さプローブを実装しています。選定されたペアに定期的な STUN BindingRequest を送信し、同意が失われると OnICEConnectionStateChanged(iceFailed) を発火します。
コンポーネントは特定のシグナリングチャネルを前提としません。WebSocket / SIP / HTTP シグナリングでローカル候補を転送し、リモート候補を受け取って入力してください。
コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。
| オンラインヘルプ — TsgcICEClient このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\35.P2P\04.ICE すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。 | 開く | |
| 技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |