Les websockets permettent-ils la communication p2p (du navigateur au navigateur)?

pour clarifier quand je demande à propos de la communication navigateur à Navigateur je veux dire sans un serveur entre le renvoi de message. Je voudrais implémenter quelque chose comme ça pour un jeu. Si p2p dans websockets n'est pas possible, y a-t-il des alternatives similaires? Toute aide est appréciée.

58
demandé sur MD XF 2010-11-07 18:01:34

5 réponses

Pas de. Les navigateurs ne peuvent que lancer des connexions WebSockets, pas les recevoir. La spécification de L'API de navigateur W3C ne définit que la façon de démarrer une connexion sortante.

vous pouvez faire une application qui lancerait et accepterait les connexions WebSockets, mais les navigateurs ne font pas cela.

vous pourriez regarder Pusher App que vous pourriez utiliser pour construire une application WebSockets avec plusieurs clients. Le le service fournit jusqu'à 20 clients WebSockets simultanés gratuitement (vous pouvez payer pour une mise à l'échelle plus élevée).

mise à Jour :

le protocole et L'API WebRTC progressent rapidement et permettent d'établir un canal de données entre deux pairs (vous pouvez encore avoir besoin d'un serveur STUN/TURN pour la traversée NAT initiale et la configuration).

46
répondu kanaka 2016-04-11 22:16:46

en théorie, il est possible avec WebRTC DataChannel :

RTCDataChannel est une API WebRTC pour haute performance, faible latence, communication de données entre pairs. L'API est simple-similaire à WebSocket-mais la communication se produit directement entre navigateurs, donc RTCDataChannel peut être beaucoup plus rapide que WebSocket même si un serveur de relais (TURN) est nécessaire (lorsque le 'hole punching' les pare-feu et Nat échouer.)

"En théorie", car il n'est pas pris en charge par une stabilité du navigateur, et vous avez encore besoin d'un serveur de relais (TOUR) si l'un des navigateurs est derrière un NAT symétrique . Néanmoins, il est vraiment prometteur fonctionnalité.

Update: Chrome 26 et Firefox 22 prennent en charge RTCDataChannel par défaut et Firefox 19-21 si vous activez WebRTC en paramétrant media.peerconnection.enabled à true (about:config).

29
répondu Joel Richard 2014-01-02 00:25:28

je lisais à propos de websocket et peer 2 peer et j'ai trouvé PeerJS .

Je n'ai toujours rien fait, mais par les exemples, il semble prometteur.

6
répondu shadownrun 2014-01-07 20:45:31

de nos jours, il est possible,actuellement seulement Chrome, FF et Opera prennent en charge it (desktop).

il y a des bibliothèques qui commencent à apparaître sur le web en ce moment, comme PeerJS et js-platform-P2P ce qui simplifie assez les choses.

0
répondu eric.itzhak 2014-03-05 08:33:07

la façon Simple et fiable de supporter le navigateur croisé est d'utiliser http://httprelay.io avec appels AJAX. Il est également met en œuvre une à plusieurs communication ce qui pourrait être utile pour le développement du jeu.

0
répondu Jonas 2017-04-24 15:04:24