¿Cómo usar sockets en JavaScript \ HTML? [cerrado]

82

¿Cómo utilizar sockets en JavaScript \ HTML?

¿Puede estar usando HTML5 genial?

Bibliotecas Tutoriales Artículos de blog?

Rella
fuente
1
¿Que estás tratando de hacer? ¿Qué navegador desea admitir?
James Black
Supongo que se está refiriendo a Web Sockets
okw
¿Te refieres a los sockets TCP?
AlikElzin-kilaka

Respuestas:

57

Especificaciones:

Artículos:

Tutorial:

Bibliotecas:

OK W
fuente
1
Actualización: bobinceproporcionó un tutorial simple en esta página: P
okw
3
Sí, ese usuario presumiblemente sería el propio Jonas Jacobi de Kaazing. ¡A menudo aparece en cualquier lugar donde se mencione WebSocket! No entiendo a Kaazing TBH, sentado en websocket.org para promover lo que parece ser una solución de cliente y servidor monolítica, no realmente libre, que tiene soporte WebSocket aparentemente como una pequeña parte de lo que realmente hace. No lo sé, podría ser una buena solución, pero realmente no me siento del todo cómodo con el marketing. [editado, por lo tanto, después de la respuesta de okw]
bobince
78

¿Cómo utilizar sockets en JavaScript / HTML?

No existe la posibilidad de utilizar sockets de uso general en JS o HTML. Sería un desastre de seguridad, por ejemplo.

Hay WebSocket en HTML5. El lado del cliente es bastante trivial:

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

Necesitará una aplicación de socket especializada en el lado del servidor para tomar las conexiones y hacer algo con ellas; no es algo que normalmente haría desde la interfaz de secuencias de comandos de un servidor web. Sin embargo, es un protocolo relativamente simple ; mi punto final basado en Python SocketServer no tenía más que un par de páginas de código.

En cualquier caso, todavía no existe. Ni la especificación del lado de JavaScript ni la especificación de transporte de red están definidas y ningún navegador las admite.

Sin embargo, puede utilizar Flash cuando esté disponible para proporcionar un respaldo a su script hasta que WebSocket esté ampliamente disponible. Gimite de Web-socket-JS es un ejemplo libre de tal. Sin embargo, está sujeto a las mismas limitaciones que Flash Sockets, es decir, que su servidor debe poder emitir una política de dominio cruzado a pedido al puerto de socket, y a menudo tendrá dificultades con los proxies / firewalls. (Los sockets de flash se crean directamente; para alguien sin acceso directo a IP pública que solo puede salir de la red a través de un proxy HTTP, no funcionarán).

A menos que realmente necesite una comunicación bidireccional de baja latencia, es mejor que se quede con ella XMLHttpRequestpor ahora.

bobince
fuente
¿Qué tipos de enlaces WS admitirá html5?
Rella
Si te refieres a cómo se verán los objetos WebSocket en el navegador, aún está por verse, pero la especificación ( w3.org/TR/websockets ) no ha cambiado mucho recientemente. Si por WS Bindings está hablando de servicios web, entonces ninguno: WebSocket no hablará sobre SOAP o cualquier otro protocolo preexistente.
Bobince el
1
Dice "No hay posibilidad de utilizar sockets de propósito general en JS o HTML. Sería un desastre de seguridad, por ejemplo". pero ¿qué pasa con las aplicaciones relacionadas con phonegap o phonegap? HTML + js no solo es necesario para los navegadores estándar.
obayhan
46

Creo que es importante mencionar, ahora que esta pregunta tiene más de 1 año, que Socket.IO ha salido desde entonces y parece ser la forma principal de trabajar con sockets en el navegador ahora; también es compatible con Node.js hasta donde yo sé.

Ricket
fuente
13
OKAY. Han pasado casi 6 años. ¿Han cambiado los estándares?
Aaron Esaú