2009-11-15 20 views
70

¿Cómo usar los sockets en JavaScript \ HTML?¿Cómo usar los sockets en JavaScript HTML?

¿Se puede usar un buen HTML5?

¿Bibliotecas? Tutoriales? Artículos del blog?

+0

¿Qué estás tratando de hacer? ¿Qué navegador quieres apoyar? –

+0

Supongo que se refiere a Web Sockets –

+0

Chrome, Firefox – Rella

Respuesta

52
+1

Actualización: 'bobince' proporcionó un tutorial simple en esta página: P –

+0

@Yea, el mismo sentimiento aquí. –

+3

Sí, ese usuario presumiblemente sería Jonas Jacobi de Kaazing. A menudo aparece en cualquier lugar donde se mencione WebSocket. Todavía no entiendo Kaazing TBH, sentado en websocket.org para promocionar lo que parece ser una solución de cliente y servidor monolítica, no realmente gratuita, que tiene compatibilidad con WebSocket como una parte aparentemente pequeña de lo que realmente hace. No sé, podría ser una buena solución, pero realmente no me siento cómodo con el marketing. [editado, por lo tanto, después de la respuesta de okw] – bobince

70

¿Cómo usar los conectores en JavaScript/HTML?

No hay posibilidad de utilizar conectores 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 llevar las conexiones y hacer algo con ellos; no es algo que normalmente harías desde la interfaz de scripting de un servidor web. Sin embargo, es un relatively simple protocol; mi punto final basado en Python SocketServer era solo un par de páginas de código.

En cualquier caso, en realidad 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 lo admite.

Sin embargo, puede utilizar Flash, si está disponible, para proporcionar un script alternativo hasta que WebSocket esté ampliamente disponible. El web-socket-js de Gimite es un ejemplo gratuito de eso. Sin embargo, usted está sujeto a las mismas limitaciones que Flash Sockets, a saber, que su servidor tiene que ser capaz de escupir una política entre dominios a petición del puerto de socket, y con frecuencia tendrá dificultades con proxies/firewalls. (Las tomas flash se hacen directamente; para alguien sin acceso público directo a IP 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 te quedes con XMLHttpRequest por el momento.

+0

¿Qué tipos de enlaces de WS admite html5? – Rella

+0

Si se refiere a cómo se verán los objetos WebSocket en el navegador, aún está por verse, pero la especificación (http://www.w3.org/TR/websockets/) no ha cambiado mucho recientemente. Si con WS Bindings está hablando de servicios web, ninguno: WebSocket no hablará con SOAP o con ningún otro protocolo preexistente. – bobince

+0

Usted dice "No hay ninguna posibilidad de usar sockets de uso 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

43

Creo que es importante mencionar, ahora que esta pregunta tiene más de 1 año, que Socket.IO ha salido 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é.

+2

OK. Han pasado casi 6 años. ¿Han cambiado los estándares? – Arin

Cuestiones relacionadas