2012-03-12 35 views
5

Có ai biết cách cấu hình thuật toán của nagle (bật hoặc tắt) trong khi sử dụng socket.io không?
Tùy chọn này có được cung cấp ngay cả với socket.io không?
Tôi giả sử rằng hành vi mặc định được định cấu hình để sử dụng thuật toán của nagle (vui lòng sửa tôi nếu tôi sai). Tôi lý tưởng muốn cấu hình bản ngã của nagle (bật/tắt) trong khi sử dụng socket.io khi cần thiết trong các ứng dụng khác nhau - bất kể máy chủ web/ứng dụng tôi có thể đang sử dụng.Thuật toán của nagle trong socket.io

Cảm ơn!

Trả lời

3

Theo Guillermo Rauch, thuật toán của Nagle được tắt theo mặc định cho các ổ cắm web trong socket.io. Tôi sẽ gửi một yêu cầu để làm cho cấu hình này (hy vọng điều này sẽ được xem xét trong một bản phát hành trong tương lai).

Cảm ơn Guillermo.

1

Các thuật toán Nagle có thể được chuyển của

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

Edit: trong NET nó là Socket.NoDelay tài sản.

trong socket.io thuật toán nagle đã bị vô hiệu hóa cho ổ cắm web và vô hiệu hóa nó cho các phương tiện vận chuyển khác là bee discussed (tính đến tháng 4 năm 2012).

+0

+1 để thêm thông tin - tốt để xem chức năng đã được thêm. –

+0

Câu trả lời này không đúng. Nó sẽ là chính xác nếu câu hỏi là về ổ cắm "BSD" truyền thống, hay còn gọi là ổ cắm TCP, hay còn gọi là winsock, vv, nhưng câu hỏi đặt ra là thư viện "socket.io" rất kém nhưng rất mạnh mẽ mà bạn có thể tìm hiểu thêm về : [http://socket.io/](http://socket.io/) –

+0

@ShawnYarbrough: Cảm ơn gợi ý. Tôi đã sửa thông tin và thêm trạng thái hiện tại của cuộc thảo luận _socket.io_ nagle – Arno

Các vấn đề liên quan