83 votes

Comment utiliser les sockets en JavaScript \HTML ?

Comment utiliser les sockets en JavaScript \HTML ?

Peut-être utilise-t-il des technologies HTML5 ?

Les bibliothèques ? Didacticiels ? Articles de blog ?

1 votes

Qu'essayez-vous de faire ? Quel navigateur voulez-vous utiliser ?

0 votes

Je suppose que vous faites référence aux sockets Web.

0 votes

Vous voulez parler des sockets TCP ?

78voto

bobince Points 270740

Comment utiliser les sockets en JavaScript/HTML ?

Il n'est pas possible d'utiliser des sockets à usage général dans JS ou HTML. Ce serait un désastre sur le plan de la sécurité.

Il y a WebSocket dans HTML5. Le côté client est assez trivial :

socket= new WebSocket('ws://www.example.com:8000/somesocket');
socket.onopen= function() {
    socket.send('hello');
};
socket.onmessage= function(s) {
    alert('got reply '+s);
};

Vous aurez besoin d'une application socket spécialisée côté serveur pour prendre les connexions et en faire quelque chose ; ce n'est pas quelque chose que vous feriez normalement à partir de l'interface de script d'un serveur web. Cependant, il s'agit d'une protocole relativement simple mon point de terminaison en Python basé sur SocketServer ne représentait que quelques pages de code.

En tout état de cause, il n'existe pas encore réellement. Ni la spécification côté JavaScript, ni la spécification de transport réseau ne sont fixées, et aucun navigateur ne la prend en charge.

Vous pouvez cependant utiliser Flash là où il est disponible pour fournir à votre script une solution de repli jusqu'à ce que WebSocket soit largement disponible. L'interface de Gimite web-socket-js en est un exemple gratuit. Cependant, vous êtes soumis aux mêmes limitations que Flash Sockets, à savoir que votre serveur doit être capable de cracher une politique inter-domaine sur demande au port de socket, et vous aurez souvent des difficultés avec les proxys/firewalls. (Les sockets Flash sont créés directement ; pour quelqu'un qui n'a pas d'accès IP public direct et qui ne peut sortir du réseau que par le biais d'un proxy HTTP, ils ne fonctionneront pas).

À moins que vous n'ayez vraiment besoin d'une communication bidirectionnelle à faible latence, il est préférable de s'en tenir à l'option XMLHttpRequest pour l'instant.

0 votes

Quels types d'interfaces WS seront pris en charge par html5 ?

0 votes

Si vous voulez savoir à quoi ressembleront les objets WebSocket dans le navigateur, cela reste à voir, mais la spécification ( w3.org/TR/websockets ) n'a pas beaucoup changé ces derniers temps. Si par WS Bindings vous parlez de services web, alors aucun : WebSocket ne parlera pas de SOAP ou de tout autre protocole préexistant.

1 votes

Vous dites : "Il n'y a aucune possibilité d'utiliser des sockets à usage général dans JS ou HTML. Mais qu'en est-il de phonegap ou des applications liées à phonegap ? HTML+js n'est pas seulement nécessaire pour les navigateurs standard.

57voto

o.k.w Points 15721

Spécifications :

Articles :

Tutoriel :

Bibliothèques :

1 votes

Mise à jour : bobince a fourni un tutoriel simple sur cette page :P

3 votes

Oui, cet utilisateur est vraisemblablement Jonas Jacobi, de Kaazing. Il apparaît souvent à chaque fois que l'on parle de WebSocket ! Je ne comprends pas vraiment Kaazing, assis sur websocket.org pour promouvoir ce qui semble être une solution client-serveur monolithique pas vraiment libre qui a le support de WebSocket comme apparemment une petite partie de ce qu'il fait réellement. Je ne sais pas, c'est peut-être une bonne solution, mais je ne suis pas tout à fait à l'aise avec le marketing. [édité, donc après la réponse d'okw]

46voto

Ricket Points 9773

Je pense qu'il est important de mentionner, maintenant que cette question a été posée il y a plus d'un an, que Socket.IO est sorti depuis et semble être le principal moyen de travailler avec des sockets dans le navigateur ; il est également compatible avec Node.js pour autant que je sache.

15 votes

OK. Cela fait presque 6 ans. Les normes ont-elles changé ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X