Pregunta desventajas de websockets


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

Websockets es tan ... poderoso. No puedo imaginar que sea sin desventajas.

Diga, ¿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, lo que limitará el número de usuarios que pueden conectarse en cualquier momento?)

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


32
2018-06-03 08:33


origen


Respuestas:


Las ventajas y desventajas dependerán, por supuesto, 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 de telnet, pero es probable que 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á enmascarar y enmarcar correctamente los datos que se enviarán, y el servidor cerrará la conexión.

Como dijo Uwe, 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, ya que 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, y finalmente recibir la respuesta del servidor (junto con otro encabezado grande).

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

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

Nota: esta respuesta se basa en el borrador actual del protocolo (draft-ietf-hybi-thewebsocketprotocol-09). WebSocket está evolucionando rápidamente, muchas implementaciones aún se basan en borradores anteriores, y algunos detalles pueden cambiar antes de finalizar.


34
2018-06-19 09:10



Por lo que leo, esto parece estar relacionado con Empuje del servidor HTTP que leí que generalmente no se recomienda utilizar, ya que crea muchas conexiones en el servidor.

Si tuviera que elegir, probablemente siempre desarrollaría un mecanismo de encuesta de clientes.


1
2018-06-11 12:36