Estoy construyendo una búsqueda dinámica (actualizada con cada pulsación de tecla): mi esquema actual es enviar, con cada pulsación de tecla, una nueva solicitud AJAX al servidor y recuperar datos en JSON.WebSockets: ¿útil para reducir gastos generales?
Consideré abrir un WebSocket para cada "sesión" de búsqueda para ahorrar algo de sobrecarga. Sé que esto ahorrará tiempo, pero la pregunta es, ¿realmente vale la pena, teniendo en cuenta esos parámetros: 80 ms de tiempo promedio de ping 166ms: tiempo entre cada pulsación de tecla, suponiendo que el usuario escribe relativamente rápido Una tasa de transferencia del peor de los casos de 1 MB/s, con cada paquete de datos que debe recibirse con cada pulsación de tecla que no supere 1 KB. La aplicación también toma algo como 30-40ms para soldar los resultados de búsqueda al DOM.
He encontrado esto: HTTP vs Websockets with respect to overhead, pero era un caso de uso diferente.
¿Los websockets reducirán cualquier cosa además de la sobrecarga HTTP pura? ¿Cuánto cuesta la sobrecarga de HTTP (suponiendo que no hay cookies y encabezados mínimos)?
Supongo que las solicitudes HTTP abren un nuevo socket de red en cada solicitud, mientras que WebSocket nos permite usar solo una todo el tiempo. Si mi comprensión es correcta, ¿cuál es la sobrecarga real de la apertura de un nuevo socket de red?
websockets valen la pena cuando el servidor inserta los mensajes a cliente – Raynos
que he hecho algo similar antes y encontrado que para hacer Es más rápido si lo desea, puede retrasar la solicitud de Ajax durante unos pocos ms y luego cancelarla si el usuario escribe otra clave. Entonces, si el usuario escribe rápidamente, usted hace una solicitud en lugar de muchas. (¡Aunque eso no responde tu pregunta en websockets!) –
Eso es lo que estoy haciendo en este momento. Funciona sin problemas, pero me preocupa que cuando lo implemente, la aplicación podría comenzar a tener problemas en tiempos de ping más lentos. Echa un vistazo a la aplicación real: http://77.70.33.151:8233/ Puedes buscar algo como "firefox", "cromo" o "mozilla". – Ivo