私は単純なチャット アプリケーションをコーディングしています。データ チャネルを使用してアプリケーション間でキャンバス ポイントを送信する共有描画キャンバスをアプリケーションに追加したいと考えています。でもオプション仕様なので、チャットを開くたびにデータチャンネルを開きたくない。ピア接続を確立した後 (提供後) にデータ チャネルを開くと、データ チャネル経由でデータを送信できません。それ以外の場合は送信できます (ここからこのポイントを取得しました: https://stackoverflow.com/a/35141500/5663292 )。では、なぜピア接続を提供する前にデータ チャネルを開く必要があるのでしょうか。
質問する
1016 次
1 に答える
4
SDP オファー/アンサーは、ピアがどのように通信したいかを正確に確立するものです。このオファーには、実際の接続方法 (IP/ポート/TURN リレー)と、使用するストリーム、コーデック、およびチャネルが含まれます。答えはこれを絞り込み、他のピアが受け入れることができるものを確認します。
追加のメディア ストリームやデータ チャネルなど、通信に何かを追加する場合は、他のピアにそのことを通知する必要があります。そうしないと、何も期待しないか、処理できません。
フローは常に次のとおりです。
- ローカルのリモートピアに送信するものをすべて準備します
RTCPeerConnection
- ローカル記述を生成する
- リモート ピアに送信する
- リモート ピアの応答を待つ
- リモートの回答を組み込む (
setRemoteDescription
)
そうして初めて、両方のピアが同じページ上にあり、実際に互いに話すことができます。必要に応じて、つまり送信内容を大幅に変更するたびに、この手順を繰り返します。
于 2016-08-10T12:02:28.843 に答える