私は、ユーザーが相互に接続し (1 対 1)、Web サイトを介してチャットできるようにするプロジェクトに取り組んでいます。http://peerjs.com/実装または WebRTC ピア接続用の別のカスタム ソリューションを使用する場合、接続を仲介するサーバーが必要ですか? もしそうなら、その目的は何ですか?WebRTC ピア接続の要点は、ユーザー間の直接接続を可能にすることだと思いました。
2 に答える
ピアには、お互いを見つけてメディア接続をセットアップする何らかの方法が必要です。サーバーはこれを行う便利な方法です。SDP メッセージを交換するためにシグナリング用の直接接続をセットアップできますが、これが機能するかどうかは、エンドポイントのアドレスとファイアウォールが正しく構成されていることを知っているかどうかによって異なります。たとえば、携帯電話やラップトップの IP アドレスは頻繁に変更されるため、それらを直接特定することは困難です。ピア接続を開始するために情報を交換するプロセスは、シグナリングと呼ばれます。
ピア接続のメディアは通常、ピア間で送信されますが、TURN サーバー経由でメディアを送信することもできます。
WebRTC プロセスのシグナリング部分は、ピア接続を介して送信されるメディアに比べて非常に軽量です。シグナリングにサーバーを使用するのは単純であるため、サーバーはシグナリングに頻繁に使用されます。
WebRTC ピア接続の要点は、ユーザー間の直接接続を可能にすることだと思いました。
直接ユーザー間接続とは、P2P 接続とは、2 人のユーザーが中間に中継サーバーを介さずに直接データを交換することを意味します。しかし、彼らがそうなるためには、まずお互いにつながる必要があります。そのためには、お互いの IP アドレスやその他の関連情報が必要です。
インターネット上の 2 つのデバイスは、何らかの方法でこれらの情報を交換しない限り、互いのアドレスを知ることができません。そのため、SIP、XMPP などのシグナリングサーバーが使用されます。ピアはこれらのサーバーにログインして、これらの IP 情報を交換します。ピア A とピア B がたとえば SIP サーバーにログインしている場合、ピア A がピア b と通信したい場合、
1) A はその IP 情報を sip サーバーに送信します。SIP サーバーはこの情報を B に転送します。
2) 情報を受信すると、ピア B はその IP アドレスを SIP サーバーに送信し、SIP サーバーはそれをピア A に転送します。
3) 両者がお互いの IP 情報を認識した後、SIP サーバーを再度使用せずに直接相互に接続できます。
これがP2P接続です。P2P接続後のピア間の接続を作成するためだけにシグナリングサーバーを使用します。
しかし、各ピアの IP 情報をすべて知っていても、P2P 接続が常に可能であるとは限りません。P2P 接続を作成できないNATがいくつかあります。しかし、それは別のトピックです。
これで混乱が解消されることを願っています。