web-dev-qa-db-ja.com

ローカルネットワーク上のWebRTC?

私はWebRTCについて読んでいて、非常に有望に見えます。同じネットワーク上の人々を自動的に接続するシンプルなLANゲームを作りたかったのです。私は似たようなことについて尋ねる人々を見つけることができました、そしてそれを可能にすることを彼らに伝える答えはありましたが、それがどのように行われることができるかについての明確なチュートリアルを見つけることができませんでした。

しかし、私はWebRTCとWebプログラミング全般に非常に慣れていません。だから、たぶん、何を検索すればいいのかわからない。

では、別のサーバーを実行したり、インターネットに接続したりすることなく、ローカルネットワークでWebRTCを使用して人々を自動的に接続するにはどうすればよいでしょうか。インターネットがなくても、コンピューターでhtmlファイルを開いて、同じネットワークで他の人と接続できる必要があります。

ありがとう!

17
The Oddler

少なくとも1台のマシンは、リッスンするポートを開く必要があるという意味で、サーバーである必要があります。これはすべてのつながりを持つ現実です。 1つのマシンが接続を開くと、応答するもう一方のマシンに別のマシンが必要になります。これがないと、接続を確立できません。

1つまたはすべてのマシンをポートでリッスンする場合は、LANにWebRTCをセットアップできます。この場合、NATトラバーサルがないため、STUNまたはTURNは必要ありません。

WebRTCは、LAN上でSTUNまたはTURNを必要としません。 WebRTCエンドポイントは、LAN上の既知のアドレスを使用してローカルICE候補を生成できます。これらは、SDPで直接、またはトリクルICEのICE候補として、シグナリングを介して交換されます。ピア接続は、LANの外部にあるSTUNサーバーに接続する必要なくセットアップできます。

9
mattm

2つのピアが直接接続を確立する前に、両方がデータセット(ネットワークパラメータ、メディア構成、使用可能なプロトコルなど)と交換する必要があるため、相互に接続する方法がわかります。彼らは、SDP(Session Description Protocol)を使用してこのプロセスを実行できます。

したがって、すべての潜在的なピアから到達可能なネットワーク内にシグナリングサーバーが必要です。クライアントが「WebRTCネットワーク」に接続する場合、最初にシグナリングサーバーに接続する必要があります。次に、シグナリングサーバーは新しいピアがあることを他のピアに通知し、すべてのピアはシグナリングサーバーを介してSDPとデータを交換します。その後、ピアは新しいピアへの直接接続を確立できます。直接接続が確立されると、すべてのデータが直接ピア間を行き来します。

4
fycth

WebRTCは、なんらかの信号メカニズムがないと機能しません。基本的に、クライアントは少なくともお互いについて何かを知っている必要があり、WebRTCの観点からこの「何か」はSDPパッケージ(Session Description Protocol)です。 SDPパッケージを交換した後、WebRTCエンジンは最も直接的な方法でクライアントに接続しようとします。

この記事を試してください: http://www.html5rocks.com/en/tutorials/webrtc/basics/

これにより、WebRTCがどのように機能するかについての基本的な理解が得られ、自分で質問に答えることができます。キーワード:シグナリング、STUNおよびTURN。

幸運を!

3
Alexey Ershov