what socket websocket socket.io

websocket - what is socket io



socket.io-XHR polling vs flashsocket y websocket (2)

Para reducir el tiempo de conexión, puede intentar reducir el tiempo de espera de conexión (que es de 10 segundos por defecto) usando el parámetro "tiempo de espera de conexión".

Por ejemplo, para reducir el tiempo de espera de conexión a 1 segundo:

socket = io.connect(''http://your-site.com'',{''connect timeout'': 1000});

Yo uso node.js y socket.io. Tengo un problema con la velocidad de conexión con socket.io. En Internet Explorer y Opera tengo un problema con la velocidad de conexión. - Cuando uso flashsocket o websocket. Cuando uso el modo de transporte, la conexión XHR es rápida, en todos los navegadores (IE, FF, Chrome, Opera).

¿Cuál es la diferencia entre el modo de transporte: XHR-polling y flash / websocket? ¿Cuál es el mejor modo de transporte? ¿Cómo optimizar la velocidad de conexión es socket.io?

¡Gracias por el consejo!


Me sorprendería si la velocidad general de la conexión a lo largo del tiempo fuera diferente entre los navegadores web, pero la razón por la que verá un retraso en la conexión inicial en Internet Explorer y en Opera es que el soporte nativo de WebSocket no está disponible tal como está desactivado por defecto. Por lo tanto, si elige FlashSocket, será necesario descargar un objeto Flash adicional (archivo SWF) antes de establecer una conexión.

Los WebSockets se están introduciendo en IE10 y en Opera están disponibles, pero están desactivados por defecto.

¿Cuál es la diferencia entre el modo de transporte: XHR-polling y flash / websocket?

  • XHR-polling - ver http://en.wikipedia.org/wiki/Push_technology#Long_polling
  • Conexión FlashSocket: utiliza un objeto Flash Socket para establecer una conexión con el servidor WebSocket y se comunica mediante el protocolo WebSocket. Esto significa que hay interacción entre Flash y JavaScript y también significa que será necesario descargar un objeto Flash adicional (archivos SWF).

¿Cuál es el mejor modo de transporte?

WebSockets para cualquier navegador web que lo admita de forma nativa (Chrome, Firefox, Safari). Si el objeto Flash (archivo SWF) está en el caché del navegador, la conexión debería ser rápida. Si no es así, habrá un retraso. XHR Long-Polling es una buena solución y funcionará en todos los navegadores, pero hay aspectos negativos:

  • entre las solicitudes de sondeo, los datos en pantalla podrían estar desactualizados (obsoletos).
  • Es un método de conexión menos eficiente que una única conexión TCP utilizada por WebSockets, ya que HTTP Long Polling usa una conexión múltiple para simular la funcionalidad bidireccional
  • HTTP tiene una sobrecarga que significa que la información adicional del encabezado se envía a solicitud y cada solicitud posterior.

¿Cómo optimizar la velocidad de conexión es socket.io?

(Soy bastante nuevo en socket.io, esto es solo una sugerencia)

Revisaría los documentos de configuración de Socket.io y vería si puede configurar condicionalmente los transports según el navegador que se está conectando. Según tus experiencias, esto podría ser:

  • Chrome, Firefox, Safari - WebSockets
  • IE, Opera - XHR-Polling