2

私は単純なチャット アプリケーションをコーディングしています。データ チャネルを使用してアプリケーション間でキャンバス ポイントを送信する共有描画キャンバスをアプリケーションに追加したいと考えています。でもオプション仕様なので、チャットを開くたびにデータチャンネルを開きたくない。ピア接続を確立した後 (提供後) にデータ チャネルを開くと、データ チャネル経由でデータを送信できません。それ以外の場合は送信できます (ここからこのポイントを取得しました: https://stackoverflow.com/a/35141500/5663292 )。では、なぜピア接続を提供する前にデータ チャネルを開く必要があるのでしょうか。

4

1 に答える 1

4

SDP オファー/アンサーは、ピアがどのように通信したいかを正確に確立するものです。このオファーには、実際の接続方法 (IP/ポート/TURN リレー)と、使用するストリーム、コーデック、およびチャネルが含まれます。答えはこれを絞り込み、他のピアが受け入れることができるものを確認します。

追加のメディア ストリームやデータ チャネルなど、通信に何かを追加する場合は、他のピアにそのことを通知する必要があります。そうしないと、何も期待しないか、処理できません。

フローは常に次のとおりです。

  1. ローカルのリモートピアに送信するものをすべて準備しますRTCPeerConnection
  2. ローカル記述を生成する
  3. リモート ピアに送信する
  4. リモート ピアの応答を待つ
  5. リモートの回答を組み込む ( setRemoteDescription)

そうして初めて、両方のピアが同じページ上にあり、実際に互いに話すことができます。必要に応じて、つまり送信内容を大幅に変更するたびに、この手順を繰り返します。

于 2016-08-10T12:02:28.843 に答える