Pregunta

Me enteré de la interfaz web de sockets en la especificación de archivo HTML a partir de una pregunta relevante aquí .
Suena muy prometedor!
No entiendo cómo funciona ¿todavía utilizan el protocolo HTTP y trabaja a su alrededor o cómo funciona algo así como sockets TCP?

¿Fue útil?

Solución

El protocolo Socket Web es un protocolo basado en TCP, pero es el diseño de rebajar a HTTP. Hay también un protocolo de enlace HTTP que solicita al servidor para actualizar el protocolo de Web Sockets. Así que si el servidor lo soporta, entonces se usará una conexión TCP en dúplex, de lo contrario el recurso HTTP y el cometa hacks para eso.

Otros consejos

En cierto modo, es tanto una petición HTTP y un socket TCP regular.

Se solicita una conexión WebSocket utilizando una petición HTTP normales a través de TCP. Hay algunas cabeceras enviadas que indican al servidor web que es un WebSocket que se solicita y no una página normal, pero fundamentalmente es simplemente una petición HTTP.

Después de la respuesta se envía desde el servidor, la conexión se actualiza. Es decir, la conexión TCP que estaba siendo utilizado para HTTP es secuestrado por un llamado superior:. Bidireccional, la transferencia de datos en tiempo real

Una vez que tenga la capacidad de comunicarse de manera bidireccional y eficiente (que es la principal victoria sobre el cometa), los horizontes de los desarrolladores es mucho mayor. De repente, las cosas como juegos MMO y la colaboración en tiempo real, que no eran posibles usando sólo las tecnologías web, se hacen posibles.

No es HTTP, ni es sockets TCP sin formato. Está diseñado para obtener la baja sobrecarga de conexiones de socket regulares (AJAX / COMET son muy altos gastos generales), pero sin renunciar a algunos de los principios de seguridad del navegador que se han desarrollado en los últimos años.

El apretón de manos iniciales WebSockets se parece mucho a HTTP. Esto hará que sea más fácil para los servidores proxy HTTP y el servidor web existentes para apoyar las conexiones entrantes y WebSockets hacer lo correcto con ellos (es decir, reenviarlos al gestor real). Pero después de un apretón de manos con éxito (que incluye el intercambio y validación de la información de origen), la conexión permanece abierta y se convierte en bidireccional.

Cada paquete de datos (ya sea enviado desde el servidor o desde el cliente) comienza con un '\ x00' (byte cero), es seguida por UTF-8 datos codificados y termina con un '\ xff' (todos los byte) .

El proyecto de norma actual está aquí: http://tools.ietf.org / html / draft hixie-thewebsocketprotocol-76

También puede encontrar la wsproxy incluido en noVNC ser útil como referencia. wsproxy es un WebSockets genéricas a proxy de socket TCP. No es tanto una versión C y Python de wsproxy incluye con noVNC.

http://github.com/kanaka/noVNC/tree/master/utils /

En tal situación, el papel de servidor viene cuando:

En HTML 5, WebSocket como un fone (2 vías comm.) No walky-talky. protocolo HTTP actualizado a WebSocket SERVIDOR protocol.(wss:// from ws://) debe ser capaz de abrir canal dúplex y, por tanto, están de acuerdo con la comunicación dúplex. Por favor, vaya también a través de este enlace: http://www.html5rocks.com/en/tutorials/websockets/basics/

Gracias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top