2010-09-14 16 views
1

Je cherche un moyen de connecter un navigateur à un autre sans avoir à subir le retard du réseau d'avoir un serveur entre les deux.Existe-t-il un moyen de connecter 2 navigateurs sans serveur? Peut-être avec Websockets?

Il ne semble pas que HTML5 WebSockets fonctionnera parce que je ne pouvais pas trouver un moyen d'écouter les connexions en Javascript, établir seulement une connexion.

Est-ce que quelqu'un sait comment faire cela? (Connectez directement 2 navigateurs? Comme via les adresses IP des 2 ordinateurs directement)

Répondre

1

Non, ce n'est pas faisable avec JavaScript.

Vous aurez besoin d'un client écrit dans une langue qui a accès à l'API de mise en réseau du système d'exploitation.

+0

Cirrus de Flash a l'air d'être un moyen, mais ne semble pas être encore en version bêta. Fini par traiter avec le serveur au milieu et c'était assez rapide. –

1

Ce n'est pas une solution parfaite, mais c'est un moyen pour vous de diffuser directement d'un client à tous les autres clients sur le canal. NB: il utilise Pusher, un service Freemium que j'ai trouvé génial et fiable. S'ils ont trouvé un moyen de le faire, alors il doit y avoir un moyen. Leur code source est également disponible sur GitHub.

http://pusher.com/docs/client_events

De leur site:

Pas tout le trafic doit passer par votre serveur web classique lors de l'utilisation Pusher. Certaines actions triviales qui n'ont pas besoin de persistance peuvent aller directement via le socket à tous les autres clients connectés au canal.

Espérons que ça aide.

3

Il est drôle comment les choses changent rapidement avec JavaScript, et le fait que la réponse acceptée (à partir de 2010) dit qu'il est impossible :-)

En 2013, oui, il y a un moyen d'avoir le navigateur directement au navigateur communication: WebRTC. Cela fait partie de HTML5, et il est activement développé. Il est déjà disponible, par exemple, dans les versions stables de Chrome et dans les versions nocturnes de Firefox.

Un navigateur WebRTC fournit des interfaces JavaScript pour:

  • MediaStreams: l'accès au matériel hôte: caméra, micro, haut-parleur.
  • ICE pour la traversée NAT.
  • PeerConnection: communication directe de navigateur à navigateur pour le streaming audio/vidéo.
  • DataChannel: communication directe de navigateur à navigateur pour des données personnalisées.

Voir ce blog post pour une introduction (un peu vieillot, beaucoup plus a été mis en œuvre déjà), ce video pour une très bonne vue d'ensemble, le W3C WebRTC JavaScript API et les RFCs associés et Internet Drafts pour les protocoles réseau.