web-dev-qa-db-fra.com

WebRTC sur le réseau local?

J'ai lu sur WebRTC et cela semble très prometteur. Je voulais faire un simple jeu lan qui connecte automatiquement les gens sur le même réseau. Bien que je pouvais trouver des gens qui demandaient quelque chose de similaire et des réponses leur disant que c'était possible, je n'ai trouvé aucun tutoriel clair sur la façon de le faire.

Je suis cependant très nouveau sur le WebRTC et la programmation Web en général. Alors peut-être que je ne sais pas quoi chercher.

Alors, comment puis-je connecter automatiquement des personnes utilisant WebRTC sur un réseau local sans que personne n'ait à exécuter un serveur distinct ou à se connecter à Internet? Ils devraient pouvoir ouvrir un fichier html sur leur ordinateur et se connecter à tout le monde qui fait cela sur le même réseau, même lorsqu'il n'y a pas d'Internet.

Merci!

17
The Oddler

Au moins une machine doit être un serveur, dans le sens où elle doit avoir un port ouvert sur lequel elle écoute. C'est une réalité de la vie avec toutes les connexions; lorsqu'une machine ouvre une connexion, il doit y avoir une autre machine à l'autre extrémité qui répond. Sans cela, aucune connexion ne pourra jamais être établie.

Si vous souhaitez qu'une ou toutes les machines écoutent sur un port, vous pouvez configurer WebRTC sur un LAN. Dans ce cas, vous n'aurez pas besoin de STUN ou TURN car il n'y a pas de traversée NAT.

WebRTC n'a pas besoin de STUN ou TURN sur un LAN. Les points de terminaison WebRTC peuvent générer des candidats ICE locaux en utilisant leurs adresses connues sur le LAN. Ceux-ci sont échangés par la signalisation, soit directement dans le SDP, soit en tant que candidats ICE dans ICE goutte à goutte. La connexion homologue peut être configurée sans jamais avoir besoin de contacter un serveur STUN externe au LAN.

9
mattm

Avant que deux pairs puissent établir une connexion directe, ils doivent tous les deux échanger avec un ensemble de données (paramètres réseau, configuration des médias, protocoles utilisables, etc.), afin de déterminer comment se connecter l'un à l'autre. Ils peuvent effectuer ce processus en utilisant SDP (Session Description Protocol).

Par conséquent, vous avez besoin d'un serveur de signalisation dans le réseau qui serait accessible par chaque homologue potentiel. Lorsqu'un client souhaite se connecter au "réseau WebRTC", il doit d'abord se connecter au serveur de signalisation. Ensuite, le serveur de signalisation informera les autres pairs que nous en avons un nouveau, et tous les pairs échangeront des données avec SDP via le serveur de signalisation. Après cela, les pairs pourraient établir une connexion directe avec le nouveau pair. Une fois la connexion directe établie, toutes les données passent directement entre pairs.

4
fycth

WebRTC ne peut pas fonctionner sans une sorte de mécanisme de signalisation. Fondamentalement, vos clients doivent au moins se connaître les uns les autres, et ce "quelque chose" dans les termes de WebRTC est un package SDP (Session Description Protocol). Après avoir échangé des packages SDP, le moteur WebRTC essaiera de connecter les clients de la manière la plus directe.

Essayez cet article: http://www.html5rocks.com/en/tutorials/webrtc/basics/

Cela vous donnera une compréhension de base du fonctionnement de WebRTC et vous répondrez vous-même à votre question. Mots-clés: signalisation, STUN et TURN.

Bonne chance!

3
Alexey Ershov