ice/stun/turn サーバーのない隔離された LAN 上の WebRTC 質問する

ice/stun/turn サーバーのない隔離された LAN 上の WebRTC 質問する

分離された LAN 上で、DHCP サーバーによって割り当てられた IP アドレスだけで WebRTC 接続を確立する方法はありますか?

Node.jsとSocket.ioを使えば実現できるとわかっていますが、私の限られたスキルではそのようなサーバーをセットアップするのは避けたいと思っていました。私はプログラミングを少しだけやっている理科の教師なので、単純にする。 ありがとう!

アップデート

アレックス、すべてのコンピュータが同じローカルネットワーク上にある場合はSTUNサーバーの使用を避けることができるというのは正しいです。私は勇気を出してラップトップにNode.jsをインストールしなければなりませんでしたが、それは本当に複雑ではありませんでした。その後、うまくいかなかった「実用的な例」をたくさん試しましたが、これですそして彼のGitHub ファイル

Nodeでサーバースクリプトを実行した後、DataChannel同じマシン上の2つのブラウザウィンドウ間の接続は確立しましたが、異なるコンピュータ間の接続は確立しませんでした。.htmlファイルを編集して、ローカルサーバーのIPアドレスではなくローカルホストそして複数のコンピュータに接続できるようになりました。次に本当のテストです。インターネット接続なしでこれを使用できるでしょうか?GoogleのSTUNサーバーを使用するように指定する行を見つけて、

var config = {"iceServers":[{"url":"stun:stun.l.google.com:19302"}]};

ただ

var config = {"iceServers":[]};

出来た。 :-)

ベストアンサー1

リストを省略iceServers:

const pc = new RTCPeerConnection();

iceServersコンストラクターからリストを省略するかRTCPeerConnection、空のリストにします[]

からRTCPeer接続ドキュメント:

iceServers | オプション

の配列RTCIceServerオブジェクト。それぞれが ICE エージェントによって使用される可能性のある 1 つのサーバーを表します。これらは通常、STUN サーバーおよび/または TURN サーバーです。これを指定しないと、STUN サーバーまたは TURN サーバーが利用できない状態で接続が試行され、接続がローカル ピアに制限されます。

webrtc/サンプルデモ

WebRTC プロジェクトがありますトリクルICE収集された候補アドレスにどのような変更が影響するかを確認するために使用できるサンプルiceServers。確認したい特定のサンプルは次のとおりです。

  1. デフォルト設定で実行するには、候補者を集めるページの下部にあるボタンをクリックします。これにより、NAT のパブリック側のアドレスを含むアドレスのリストが返されます。

    デフォルトの ICE サーバー

  2. リストからすべてのICEサーバーを削除し、候補者を集める今度は、ローカル ネットワーク アドレスのみが表示されます。

    ICE サーバーなし

私のネットワークでは、2 つのパブリック IPv4 アドレス (98 で始まる) は、デフォルトの ICE サーバーを使用している場合にのみ表示されることに注意してください。空の ICE サーバー リストを使用すると、パブリック IPv4 アドレスは検出されなくなります。一方、IPv6 アドレスは NAT の対象ではないため、両方のテストで同じです。

がここにありますiceServers と PeerConnection を設定するソースコードへのリンク

おすすめ記事