2017-02-24 5 views
2

私が知る限り、シグナリングサーバの役割は、通信したいWebブラウザ間でsdpを交換することです。webRTCでは、sdp交換が完了したら、websocketの役割は終了しましたか?

このプロセスは次のように理解されました。

  1. Webブラウザは、サーバーが戻ってWebブラウザに互いのSDPを渡すのWebSocket
  2. を介してサーバのシグナリングにSDPを渡します。
  3. 転送が完了したら、ウェブソケットを閉じます。その後
  4. 、Webブラウザは、シグナリングサーバ

せずに相互に通信することができ、私はそれが権利を取得しましたか?

答えて

1

これは、バニラまたはトリクルICEのどちらを使用しているかによって異なります。

トリクルICEでは、SDEを送信する前などに、STUN経由でICE候補が検出されません。この場合、WebRTCエンドポイントはまだ互いに通信できないため、通信できない場合があります。シグナリング層は、ピア接続を確立するためにICE候補を中継する必要があります。ピア接続が確立されると、シグナリングはもはや必要なくなります。私が見たほとんどの実装は、通常、ピア接続を確立するための遅延を減らすため、トリクルICEを使用しています。

バニラICEでは、SDEを送信する前にICE候補が検出されます。この場合、シグナリングはSDPを送信した後に完了する。

+1

右。また、[通話中にメディアを追加する](http://stackoverflow.com/a/30022892/918910)にしたい場合は、シグナリング用のデータチャネルをセットアップしない限り(http ://stackoverflow.com/q/30016613/918910)。シグナリングのためにデータチャネルを使用するリスクは、ICE(ネットワーク)の障害によりICEの再起動が必要になった場合、あなたを救うことはできません。 – jib

関連する問題