La eficacia en WebSocket depende de la implementación y la arquitectura del servidor web que los maneja. WebSocket es un protocolo muy eficiente con solo 2 bytes (!) De sobrecarga, en comparación con todos los diferentes HTTP header fields y HTTP cookies que se envían en cada solicitud de Ajax.
Por lo general, un servidor web eficiente para websockets debe ser impulsado por eventos (ver los ejemplos a continuación). Por el contrario, la forma tradicional de implementar servidores web ha sido generar un nuevo hilo por solicitud. Pero los hilos asignan mucha memoria, p. 256 MB por hilo. Entonces, si tiene 1GB de memoria en su servidor, no puede manejar muchas solicitudes al mismo tiempo. Pero si su servidor está basado en eventos, su uso de memoria será casi constante, ya que no se crean subprocesos nuevos. Consulte también Technically why is processes in Erlang more efficient than OS threads?
Puede enviar cualquier dato en sus WebSockets. JSON es eficiente si el cliente es un navegador web, o quizás typed arrays. Si su cliente es una aplicación personalizada, puede usar Protocol Buffers. Consulte también Google Wave Client-Server Protocol Whitepaper
Puede implementar servidores websocket eficientes usando Twisted (Python) o Netty (Java). Play Framework es un marco web eficiente para Java y Scala implementado en Netty. Otra alternativa eficiente es el servidor web Yaws (Erlang) o Node.js + Socket.io (JavaScript).
Como desarrollador de aplicaciones, cuantos menos datos envíe, más eficiente (menos tráfico) y menos carga en su servidor.
En realidad, creo que el anfitrión hará bastante bien para mantener a los cachorros en línea, o lo hará el ISP. – jcolebrand
Probablemente, pero una pequeña optimización no puede doler, especialmente en aplicaciones donde la latencia de la red es un factor enorme. – Alexander
¿Desea QoS para websockets ... o qué exactamente? ¿Un máximo global de ellos? ¿Estás preocupado por el cliente o el servidor aquí? – jcolebrand