Sur un réseau local isolé, existe-t-il un moyen d'établir une connexion WebRTC simplement avec les adresses IP attribuées par le serveur DHCP?
Je comprends que je peux accomplir cela avec Node.js et Socket.io - mais j'espérais vraiment éviter de configurer ce type de serveur avec mes compétences limitées. Je suis un professeur de sciences qui s'initie à la programmation, alors n'hésitez pas à restez simple. Je vous remercie!
Alex, vous avez raison, je peux éviter d'utiliser un serveur STUN si tous les ordinateurs sont sur le même réseau local. Bien que j'ai dû mordre la balle et installer Node.js sur mon ordinateur portable, ce n'était vraiment pas compliqué. J'ai ensuite essayé tout un tas d '"exemples de travail" qui ne fonctionnaient pas pour moi, jusqu'à ce que je trouve celui-ci et ses fichiers GitHub .
Après avoir exécuté le script du serveur dans Node, j'avais une connexion DataChannel
entre deux fenêtres de navigateur sur la même machine, mais pas entre des ordinateurs différents. J'ai modifié les fichiers .html pour pointer vers l'adresse IP de mon serveur local au lieu de localhost et je pouvais alors me connecter avec plusieurs ordinateurs. Puis vint le vrai test - pourrais-je l'utiliser sans connexion Internet? J'ai trouvé la ligne spécifiée à l'aide des serveurs STUN de Google et je l'ai modifiée de
var config = {"iceServers":[{"url":"stun:stun.l.google.com:19302"}]};
pour juste
var config = {"iceServers":[]};
iceServers
:const pc = new RTCPeerConnection();
Soit omettre la liste iceServers
du constructeur RTCPeerConnection
, soit en faire la liste vide []
.
De RTCPeerConnection documents:
iceServers | optionnel
Un tableau d'objets
RTCIceServer
, chacun décrivant un serveur qui peut être utilisé par l'agent ICE; il s'agit généralement de serveurs STUN et/ou TURN. Si ce n'est pas spécifié, la tentative de connexion sera effectuée sans serveur STUN ou TURN disponible, ce qui limite la connexion aux homologues locaux.
Le projet WebRTC a un exemple Trickle ICE que vous pouvez utiliser pour voir comment les changements dans iceServers
affectent l'adresse candidate qui est collectée. L'échantillon spécifique que vous souhaitez consulter est.
Exécutez-le avec les valeurs par défaut définies en appuyant sur le bouton Rassembler les candidats au bas de la page. Cela renverra une liste d'adresses qui incluent l'adresse du côté public de votre NAT.
Maintenant, supprimez tous les serveurs ICE de la liste et appuyez à nouveau sur Rassemblez les candidats , cette fois, vous ne devriez voir que les adresses réseau locales.
Notez que, sur mon réseau, les 2 adresses IPv4 publiques (commençant par 98.) n'apparaissent que lorsque j'utilise les serveurs ICE par défaut. Lorsque j'utilise une liste de serveurs ICE vide, mes adresses IPv4 publiques ne sont plus découvertes. Mes adresses IPv6, en revanche, sont les mêmes dans les deux tests car elles ne sont pas soumises à NAT.
Voici un lien vers le code source qui configure iceServers et PeerConnection .