Cada método tiene esencialmente el mismo costo, al menos en su nivel básico de comunicación: el zócalo. El costo es en la práctica mayor para una configuración de larga duración, y explicaré por qué.
Inicialmente se establece un zócalo para la comunicación. En horas extras, la “conexión de socket web” permanece abierta. Este es un recurso de socket único para todos los clientes, por lo que el socket puede enviar / recibir bytes. Sin embargo, la configuración de longpolling tiene un socket para cada cliente. Mantiene este socket abierto durante un tiempo, enviando mensajes periódicamente a medida que hay nuevo contenido disponible. cuando el socket está cerrado, el cliente debe detectar esto y reiniciar una nueva conexión. Al ignorar las situaciones en las que una conexión de websocket se rompe y debe restablecerse, el modelo de websocket es más eficiente, debido al costo inherente en el establecimiento de la conexión de socket entre el servidor y el cliente. En el mundo real, utilizando sockets persistentes, un trabajo de larga duración puede ofrecer una eficiencia similar a un trabajo de websocket, sin embargo, todo se reduce a la implementación del servidor.
Si estuvieras votando con PHP sería muy poco eficiente y probablemente consumirías todos tus recursos con muy pocos usuarios. Sin embargo, si tiene una larga apuesta con Java, es probable que pueda servir a muchos usuarios con una pila bastante modesta.
- ¿Se puede reemplazar HTML completamente con cualquier otro idioma?
- ¿Cómo alguien con conocimientos básicos de HTML, CSS y Javascript se vuelve excelente en diseño web?
- ¿Qué proyectos de programación le han dado más información sobre un concepto / técnica de programación?
- ¿Alguien se ha convertido en un buen desarrollador web sin mucho conocimiento de las matemáticas?
- ¿Qué debo aprender primero CMS o marco?
En resumen, es una buena pregunta, y teóricamente, sí , los websockets son más eficientes , sin embargo, en la práctica, hay demasiadas variables en juego para proclamar que cualquiera de los métodos usaría los recursos de manera más eficiente, teniendo en cuenta la distinción que los websockets necesitarán construir, en promedio menos sockets para la comunicación entre el servidor en el cliente, pero debido a la variable de la frecuencia con la que un cliente se desconectará / volverá a conectar al servidor websocket, no podemos decir que este sea el caso de manera concluyente, siempre. de hecho, encontrará lo opuesto para ser cierto, que el longpolling puede ser más eficiente y más confiable.
En caso de duda, use una implementación como socketio. Puedes apoyar a más clientes de esta manera.