desventajas de websockets


Me gustaría saber qué tipo de limitaciones hay en el uso de websockets.

Websockets es así.. poderoso. No puedo imaginar que no tenga desventajas.

Digamos, ¿cuál es el número de usuarios que pueden conectarse simultáneamente a un servidor (si estoy creando un juego y los usuarios se conectarán al juego a través de WebSockets, ¿qué limitará el número de usuarios capaces de conectarse a la vez?)

También es cierto que con cada conexión adicional, la calidad de ¿las conexiones (velocidad y cosas así) disminuirán?

Author: Pacerier, 2011-06-03

2 answers

Las ventajas y desventajas, por supuesto, dependerán del caso de uso específico, pero intentaré señalar algunas diferencias entre WebSocket y HTTP.

WebSocket es más complejo que HTTP. Puede establecer una conexión HTTP con un cliente telnet, pero probablemente no pueda hacer lo mismo con WS. Incluso si ignoró los requisitos de handshake (que incluyen el uso de la función hash SHA1), entonces no podría enmascarar y enmarcar correctamente los datos que se enviarán, y el servidor cerraría la conexión.

Como Uwe dijo, las conexiones WebSocket están destinadas a ser más persistentes que las conexiones HTTP. Si solo desea recibir una actualización cada 30 minutos, querrá ir con HTTP. Si desea recibir actualizaciones cada segundo, un WebSocket podría ser una mejor opción, porque establecer una conexión HTTP lleva mucho tiempo.

Para establecer una conexión HTTP, primero debe establecer una conexión TCP (SYN, SYN / ACK, ACK), luego enviar una solicitud GET con un encabezado bastante grande, finalmente recibe la respuesta del servidor (junto con otro encabezado grande).

Con un WebSocket abierto, simplemente recibe la respuesta (no necesita solicitud), y viene con un encabezado mucho más pequeño: desde dos bytes para fotogramas pequeños, hasta 10 bytes para fotogramas ridículamente grandes (en el rango de gigabyte).

Debe sopesar los dos costos (mantener una conexión abierta vs establecer una nueva conexión) para decidir entre los dos protocolos.

Nota: esto la respuesta se basa en el borrador actual del protocolo (draft-ietf-hybi-thebsocketprotocol-09). WebSocket está evolucionando rápidamente, muchas implementaciones todavía se basan en borradores más antiguos, y algunos detalles pueden cambiar antes de que se finalice.

 35
Author: suriv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-19 09:10:04

Por lo que leí, esto parece estar relacionado con HTTP Server Push que leí que generalmente no se recomienda usar ya que crea muchas conexiones en el servidor.

Si tengo que elegir, probablemente siempre desarrollaría un mecanismo de sondeo de clientes.

 1
Author: Uwe Keim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-11 12:36:08