2010-11-07 22 views
53

Per chiarire quando chiedo informazioni sulla comunicazione da browser a browser, voglio dire senza un server tra il messaggio di inoltro. Mi piacerebbe implementare qualcosa di simile per un gioco. Se p2p in websockets non è possibile ci sono alternative simili? Qualsiasi aiuto è apprezzato.Le websocket consentono la comunicazione p2p (da browser a browser)?

+0

http://socket.io –

+0

Sì, ma nessun browser ha un'implementazione funzionante e credo che ora faccia parte dell'API [stream]. (Http://www.whatwg.org/specs/web-apps/corrente-lavoro/multipagina/comandi.html # peer-to-peer-connections) – antimatter15

+5

Il W3C ora elabora le specifiche [WebRTC] (http://www.w3.org/TR/webrtc/) parlando delle connessioni Peer-to-Peer, tra le altre cose. –

risposta

42

No. I browser possono solo avviare connessioni WebSockets, non riceverli. W3C browser API spec definisce solo come avviare una connessione in uscita.

È possibile creare un'applicazione che sia in grado di avviare e accettare connessioni WebSockets, ma i browser non lo fanno.

Si potrebbe guardare Pusher App che è possibile utilizzare per creare un'applicazione WebSockets con più client. Il servizio fornisce gratuitamente fino a 20 client WebSockets (è possibile pagare per il ridimensionamento più elevato).

Aggiornamento:

Il WebRTC protocollo e API sta facendo rapidi progressi e permette un canale dati da stabilire tra i due coetanei (ancora avere bisogno di un server STUN/svolta per il NAT traversal iniziale e l'installazione) .

+3

+1. Anche se non consiglierei app di terze parti. Molto più facile da costruire. –

+0

Pusher ora fornisce gratuitamente 20 connessioni simultanee e 100.000 messaggi al giorno :) – Tieme

+0

Penso che dovresti aggiornare la risposta: https://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer- conversational-video –

27

In teoria è possibile con WebRTC DataChannel:

RTCDataChannel è un'API WebRTC per elevate prestazioni, bassa latenza, peer-to-peer di dati arbritary. L'API è semplice-simile a WebSocket, ma la comunicazione avviene direttamente tra i browser , quindi RTCDataChannel può essere molto più veloce di WebSocket anche se è richiesto il server un relay (TURN) (quando "perforazione" per far fronte ai firewall e NAT non riesce).

"In teoria", perché non è supportata da un browser ancora stabile ed è ancora bisogno di un server relay (TURN) se uno dei browser è dietro un symmetric NAT. Tuttavia, è una funzionalità davvero promettente.

Aggiornamento: Chrome 26 e Firefox 22 RTCDataChannel supporto per impostazione predefinita e Firefox 19-21 Se si abilita WebRTC impostando media.peerconnection.enabled a true (about: config).

6

Stavo leggendo su websocket e peer 2 peer e ho trovato PeerJS.

Non ho ancora fatto nulla, ma dagli esempi sembra promettente.

+4

PeerJS è un wrapper su WebRTC. –

0

Ora è possibile, al momento solo Chrome, FF e Opera lo supportano (desktop).

Ci sono alcune librerie che iniziano a spuntare sul Web in questo momento, come ad esempio PeerJS e js-platform-p2p che semplifica molto le cose.

0

Il modo semplice e affidabile per browser incrociati è utilizzare http://httprelay.io con chiamate AJAX. Inoltre, implementa una comunicazione uno a molti che potrebbe essere utile per lo sviluppo del gioco.

Problemi correlati