алгоритм Нэгла в socket.io - PullRequest
5 голосов
/ 13 марта 2012

Кто-нибудь знает, как настроить алгоритм nagle (вкл или выкл) при использовании socket.io?
Эта опция даже предоставляется с socket.io?
Я предполагаю, что поведение по умолчанию настроено на использование алгоритма Нэгла (исправьте меня, если я ошибаюсь).

В идеале я бы хотел настроить алгоритм nagle (вкл / выкл) при использовании socket.io, как это необходимо в разных приложениях, независимо от того, какой сервер веб-приложений / приложений я могу использовать.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Согласно Гильермо Рауху, алгоритм Nagle по умолчанию отключен для веб-сокетов в socket.io.Я отправлю запрос, чтобы сделать это настраиваемым (надеюсь, это будет рассмотрено в будущем выпуске).

Спасибо Гильермо.

1 голос
/ 16 июля 2012

Алгоритм Nagle может быть переключен на

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);

Редактировать: в .NET это свойство Socket.NoDelay .

в socket.io алгоритм nagle уже отключен для веб-сокетов, и его отключение для других транспортов обсуждается , обсуждено (по состоянию на апрель 2012 года).

...