ios - long - Diferencias entre websockets y encuestas largas para el servidor de juegos por turnos
long polling vs websockets (1)
¿Qué es el sondeo largo?
Una variación de la técnica de sondeo tradicional y permite la emulación de un envío de información de un servidor a un cliente. Con sondeos largos, el cliente solicita información del servidor de manera similar a un sondeo normal.
- Si el servidor no tiene ninguna información disponible para el cliente, en lugar de enviar una respuesta vacía, el servidor retiene la solicitud y espera que haya información disponible.
-
Una vez que la información está disponible (o después de un tiempo de espera adecuado), se envía una respuesta completa al cliente. Normalmente, el cliente volverá a solicitar información del servidor de manera inmediata, de modo que el servidor casi siempre tendrá una solicitud de espera disponible que puede usar para entregar datos en respuesta a un evento.
En un contexto web / AJAX, el sondeo largo también se conoce como programación Comet.
¿Qué pasa con Websockets?
WebSockets proporciona una conexión persistente entre un cliente y un servidor que ambas partes pueden usar para comenzar a enviar datos en cualquier momento.
- El cliente establece una conexión WebSocket a través de un proceso conocido como protocolo de enlace WebSocket. Este proceso comienza con el cliente enviando una solicitud HTTP regular al servidor.
- Se incluye un encabezado de actualización en esta solicitud que informa al servidor que el cliente desea establecer una conexión WebSocket.
Conclusión
Si hay una necesidad de comunicación en tiempo real, puede optar por websockets.
Pero en Long Polling:
Se mantiene abierta una conexión entre el cliente web y el servidor web para que cuando el servidor tenga nueva información pueda enviarla al cliente. Esa solicitud está terminada. Luego se realiza una nueva solicitud entre el cliente y el servidor y luego espera otra actualización del servidor. La misma conexión TCP generalmente se abre de forma persistente en múltiples solicitudes debido a las actualizaciones HTTP / 1.1.
Referencias y otras consideraciones:
Sondeo largo PubNub vs enchufes - duración de la batería móvil
¿Qué son Long-Polling, Websockets, Server-Sent Events (SSE) y Comet?
Estoy escribiendo un servidor para un juego de iOS. El juego se basa en turnos y el único momento en que el servidor necesita enviar información al cliente es notificar el movimiento del oponente.
Tengo curiosidad por saber si alguien podría comentar sobre el rendimiento y la facilidad de las diferencias de implementación entre el uso de websockets y las encuestas largas. Además, si usé websockets, ¿debería usarlo solo para recibir información y enviar solicitudes POST para todo lo demás o toda la comunicación debería ser a través del websocket?
Además, ¿hay algo más que considerar entre websockets y encuestas largas si estoy interesado en crear un cliente web?