2012-03-12 5 views
5

¿Alguien sabe cómo configurar el algoritmo de nagle (activado o desactivado) mientras usa socket.io?
¿Esta opción incluso viene con socket.io?
Supongo que el comportamiento predeterminado está configurado para usar el algoritmo de nagle (corrígeme si estoy equivocado).Algoritmo de nagle en socket.io

Me gustaría configurar idealmente el dispositivo de nagle (on/off) mientras usa socket.io según sea necesario en diferentes aplicaciones, independientemente de qué servidor web/de aplicaciones pueda estar usando.

Gracias!

Respuesta

3

Según Guillermo Rauch, el algoritmo de Nagle está desactivado por defecto para los sockets web en socket.io. Presentaré una solicitud para que esto sea configurable (espero que esto se vea en una versión futura).

Gracias Guillermo.

1

el algoritmo de Nagle se puede cambiar de

int socket_descriptor; 
BOOL bOptVal = TRUE; 
int bOptLen = sizeof(BOOL); 
// get a socket: 
socket_descriptor = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 
/* ... bind the socket, listen to it 
    . 
    . 
*/ 
// set the socket to non-blocking mode: 
ioctlsocket(socket_descriptor, FIONBIO, 1); 

// disable nagle: 
setsockopt(socket_descriptor, IPPROTO_TCP, TCP_NODELAY, (char*)&bOptVal, bOptLen); 

Editar: en .NET es la propiedad Socket.NoDelay.

en Socket.IO el algoritmo de Nagle ya está deshabilitado para websockets y desactivación de otros medios de transporte esta en buen estado discussed (a partir de abril de 2012).

+0

+1 para agregar la información, es bueno ver que se agregó la funcionalidad. –

+0

Esta respuesta es incorrecta. Sería correcto si la pregunta fuera sobre los zócalos "BSD" tradicionales, también conocidos como sockets TCP, también conocidos como winsock, etc., pero la pregunta es sobre la biblioteca "socket.io" mal nombrada pero muy poderosa que puede aprender más sobre : [http://socket.io/](http://socket.io/) –

+0

@ShawnYarbrough: Gracias por la pista. Corregí la información y agregué el estado actual de la conversación _socket.io_ nagle – Arno