RTCMultiConnection サーバー

RTCMultiConnection JavaScript ライブラリと互換性のある WebSocket シグナリングサーバーです。TsgcWebSocketHTTPServer に追加するだけで、ブラウザクライアント同士が相互に接続できるようになります。

TsgcWSAPIServer_RTCMultiConnection

RTCMultiConnection(Muaz Khan)JavaScript クライアントが使用するワイヤープロトコル(ルーム、ピア検出、SDP / ICE リレー)を実装しており、Delphi サーバーで Node.js シグナリングバックエンドを置き換えることができます。

コンポーネントクラス

TsgcWSAPIServer_RTCMultiConnection

プロトコル

RTCMultiConnection

プラットフォーム

Windows, macOS, Linux, iOS, Android

エディション

Enterprise

HTTP サーバーに追加して実行する

TsgcWebSocketHTTPServer(TLS 推奨)と TsgcWSAPIServer_RTCMultiConnection を配置するだけで、既存の RTCMultiConnection.js クライアントがデフォルト URL で接続できます。

uses
  sgcWebSocket, sgcWebSocket_Server_APIs;

var
  Server: TsgcWebSocketHTTPServer;
  RTCMC: TsgcWSAPIServer_RTCMultiConnection;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 443;
  Server.SSL  := True;
  Server.SSLOptions.CertFile := 'cert.pem';
  Server.SSLOptions.KeyFile  := 'key.pem';

  RTCMC := TsgcWSAPIServer_RTCMultiConnection.Create(nil);
  RTCMC.Server := Server;

  Server.Active := True;
end;

主な機能

人気の RTCMultiConnection.js クライアントに対応するサーバーサイドコンポーネント。Node.js シグナリングを Delphi サービスで置き換えることができます。

ルーム / チャネルルーティング

open-roomjoin-roomcheck-presence などの RTCMultiConnection ワイヤー動詞を受け付けます。同じルームの参加者間で SDP と ICE 候補が交換されます。

SDP リレー

SDP オファーとアンサーをそのままリレーします。サーバーはデコードしないため、JavaScript クライアントが進化しても互換性が維持されます。

ICE 候補リレー

Trickle-ICE 候補は同じチャネルを通じて転送され、クライアント側で SetRemoteDescription が呼び出されるまでピアごとにキューに入れられます。

マルチインスタンス

同じサーバーに複数の TsgcWSAPIServer_RTCMultiConnection コンポーネントを配置できます(仮想ホストごとに 1 つ)。それぞれが独自のルーム名前空間を管理します。

TLS 推奨

WebRTC は本番環境で TLS が必須です。有効な証明書で Server.SSLOptions を設定し、ブラウザが wss:// として WebSocket アップグレードを受け入れるようにしてください。

TURN との組み合わせ

TsgcTURNServer と組み合わせることで、Delphi だけで完結する WebRTC バックエンドを構築できます。シグナリングとキャンディデートリレーをすべて自前で提供でき、サードパーティサービスは不要です。

仕様と参考資料

このコンポーネントが実装するプロジェクトの一次資料です。

ドキュメントとデモ

コンポーネントリファレンスへのディープリンク、すぐに実行可能なデモプロジェクト、そして体験版のダウンロードはこちらです。

オンラインヘルプ — RTCMultiConnection 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\30.WebRTC_Protocol\04.RTCMultiConnection すぐに実行可能なサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。下記より体験版をダウンロードしてください。
技術ドキュメント (PDF) 本コンポーネントのみを対象とした機能解説、クイックスタート、Delphi および C++ Builder のコードサンプル、一次資料への参照を収録しています。
ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。

Delphi で RTCMultiConnection をホストする準備はできましたか?

体験版をダウンロードして、Node.js シグナリングバックエンドを Delphi サービスに置き換えましょう。