【发布时间】:2015-12-07 07:18:21
【问题描述】:
我试图弄清楚 Node.js 的网络类如何处理超时和保持活动。我将它们设置在服务器端并观察设置这些变量有什么不同。我注意到,如果我将 keepalive 设置为以下:
// Set keepalive
socket.setKeepAlive( true, 30000 );
它绝对会发送我用 Wireshark 观察到的 keepalive 数据包。
但是,即使我订阅了套接字的超时事件,套接字也不会超时。所以我尝试设置套接字的超时选项。
// Set timeout variables
socket.setTimeout( 60000 );
即使与 keepAlive 选项结合使用,套接字仍然会在其最后一个真正传输的数据包之后的 60 秒后超时。
所以我的问题是,如果 keepAlive 没有真正做任何事情来防止套接字超时,那么它的意义何在?
【问题讨论】:
标签: javascript node.js sockets timeout keep-alive