5

socket.io の使用中に nagle のアルゴリズム (オンまたはオフ) を構成する方法を知っている人はいますか?
このオプションは socket.io でも提供されますか?
デフォルトの動作は nagle のアルゴリズムを使用するように構成されていると想定しています (間違っている場合は訂正してください)。

理想的には、使用している Web/アプリ サーバーに関係なく、さまざまなアプリケーションで必要に応じて socket.io を使用しながら、nagle のアルゴ (オン/オフ) を構成したいと考えています。

ありがとう!

4

2 に答える 2

3

Guillermo Rauch によると、Nagle のアルゴリズムは、socket.io の Web ソケットに対してデフォルトでオフになっています。これを構成可能にするリクエストを送信します (将来のリリースで検討されることを願っています)。

ありがとうギレルモ。

于 2012-03-13T17:43:20.447 に答える
1

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 アルゴリズムはWebsocket に対して既に無効になっており、他のトランスポートに対して無効にすることが議論されています(2012 年 4 月現在)。

于 2012-07-16T11:20:28.590 に答える