Escuché acerca de la Interfaz Web Sockets en la especificación del archivo HTML a partir de una pregunta relevante here.
¡Parece muy prometedor!
No entiendo cómo funciona, ¿todavía usa el protocolo HTTP y funciona a su alrededor o funciona algo como sockets TCP?¿Cómo funciona la Interfaz web de sockets HTML5?
Respuesta
El protocolo Web Socket es un protocolo basado en TCP, pero está diseñado para degradarse a HTTP. También hay un protocolo de enlace HTTP que le pide al servidor que actualice al protocolo Web Sockets. Entonces, si el servidor lo admite, se usará una conexión TCP dúplex, de lo contrario recurrirá a HTTP y el cometa lo pirateará.
No es HTTP, ni es sockets TCP simples. Está diseñado para obtener la baja sobrecarga de las conexiones de socket regulares (AJAX/COMET tienen una sobrecarga muy alta), pero sin sacrificar algunos de los principios de seguridad del navegador que se han desarrollado en los últimos años.
El saludo inicial de WebSockets se parece mucho a HTTP. Esto facilitará que los proxies HTTP y el servidor web existentes sean compatibles con las conexiones de WebSockets entrantes y hagan lo correcto con ellos (es decir, reenviarlos al controlador real). Pero después de un apretón de manos exitoso (que incluye intercambio y validación de información de origen), la conexión permanece abierta y se vuelve bidireccional.
Cada paquete de datos (ya sea enviado desde el servidor o desde el cliente) comienza con '\ x00' (byte cero), es seguido por datos codificados UTF-8 y termina con '\ xff' (todos bytes)
El actual proyecto de norma está aquí: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
También puede encontrar el wsproxy incluido en noVNC ser útil como referencia. wsproxy es un proxy de socket WebSockets genérico a TCP. Hay una versión en C y python de wsproxy incluida con noVNC.
En cierto modo, es tanto una petición HTTP y un socket TCP regular.
Se solicita una conexión websocket mediante una solicitud HTTP normal a través de TCP. Se han enviado algunos encabezados que indican al servidor web que se está solicitando un websocket y no una página normal, pero fundamentalmente es solo una solicitud HTTP.
Después de que se envíe la respuesta desde el servidor, la conexión se actualiza. Es decir, la conexión TCP que se estaba utilizando para HTTP se secuestra para una llamada más alta: transferencia de datos bidireccional y en tiempo real.
Una vez que tenga la capacidad de comunicarse bidireccionalmente y de manera eficiente (que es la principal victoria sobre el cometa), los horizontes de los desarrolladores se ve incrementado en gran medida. De repente, cosas como los juegos MMO y la colaboración en tiempo real, que no eran posibles usando solo tecnologías web, se hicieron posibles.
Pregunta: ¿EXACTAMENTE es como abrir la solicitud http y mantenerla abierta? (como el largo sondeo del cometa ...)? o es algo diferente –
@RoyiNamir, sí, exactamente lo mismo, dar o tomar algunos encabezados, excepto que no tiene que abrir una nueva conexión cada vez que desea enviar o recibir algo. –
Gracias. por lo que realmente hace un verdadero empujón .... ¿verdad? (y no responde a una solicitud ...) –
En tal situación, el papel de servidor viene cuando: (. Comm 2 vías)
En HTML 5, WebSocket como un fone no walky-talkies. protocolo HTTP actualizado al protocolo websocket. (wss:// from ws://)
El SERVIDOR debe ser capaz de abrir el canal dúplex y, por lo tanto, ACEPTA la comunicación dúplex. También visite este enlace: http://www.html5rocks.com/en/tutorials/websockets/basics/
Gracias.
- 1. Primeros pasos con sockets web
- 2. ¿Cómo funciona la interfaz IDisposable?
- 3. ¿Cómo funciona una interfaz de servidor web con PHP
- 4. ¿Cómo funciona la función de geolocalización HTML5?
- 5. ¿Por qué necesitamos web-sockets?
- 6. ¿Cómo funciona localStorage en HTML5?
- 7. ¿Qué obtienes con los sockets web HTML5 que no puedes tener con AJAX?
- 8. Cómo proteger la interfaz web KDB/Q
- 9. Interfaz web de Subversion
- 10. Sockets web/Tornado - Notificar al cliente en la actualización de la base de datos
- 11. ¿Cómo funciona exactamente GeoLocation de HTML5?
- 12. ¿Por qué Web Sockets no usa SOAP?
- 13. Audio no funciona en html5
- 14. interfaz de usuario Web: Dinámica Web Forms
- 15. ¿Cómo usar los sockets en JavaScript \ HTML?
- 16. ¿Cómo funciona la geolocalización del navegador web?
- 17. audio HTML5 en iOS4 iPhone fuera de línea ¿La aplicación web no funciona?
- 18. ¿Cómo funciona un web beacon (error web)?
- 19. ¿Cómo acceder a la cámara web desde HTML5?
- 20. Link no funciona dentro de la interfaz de usuario seleccionable
- 21. Python + sockets
- 22. ¿La vista web de android admite reproducción de video html5?
- 23. Interfaz web para la aplicación Windows Forms
- 24. Servicio web vs sockets TCP/IP (Java) + SQL Connections
- 25. ¿Funciona ahora la getUserMedia de HTML5 para grabación de audio?
- 26. HTML5 VIDEO no funciona en la aplicación my rails 3
- 27. Interfaz con una cámara web
- 28. ¿Cómo hacer sockets en jQuery?
- 29. La etiqueta de audio HTML5 no funciona en Android
- 30. Sockets RDM
La última vez que vi las especificaciones del protocolo WebSocket, no hubo forma de degradar automáticamente a HTTP. ¿Dónde se agregó eso? – EricLaw
WebSockets (¿usado?) Son compatibles con NTP, un protocolo apagado en los años 80. – Christian