Node.js socket.io是否自动处理keepalives?

Node.js socket.io是否自动处理keepalives?,node.js,socket.io,keep-alive,linode,Node.js,Socket.io,Keep Alive,Linode,我在Linode服务器上使用node.js和socket.io。我被告知我应该在我的应用程序中使用KeepAlives,以便使用Linode节点导航器。我还被告知,我必须将NodeBalancer协议设置为使用TCP而不是(HTTP或HTTPS,两者都禁用KeepAlives) 我的问题是,默认情况下是否已经在socket.io中实现了KeepAlives?似乎有什么东西使连接保持活动状态,所以我认为socket.io已经处理了这个问题。然而,我似乎找不到关于这个话题的任何信息。如果默认情况下未

我在Linode服务器上使用node.js和socket.io。我被告知我应该在我的应用程序中使用KeepAlives,以便使用Linode节点导航器。我还被告知,我必须将NodeBalancer协议设置为使用TCP而不是(HTTP或HTTPS,两者都禁用KeepAlives)

我的问题是,默认情况下是否已经在socket.io中实现了KeepAlives?似乎有什么东西使连接保持活动状态,所以我认为socket.io已经处理了这个问题。然而,我似乎找不到关于这个话题的任何信息。如果默认情况下未在socket.io中实现KeepAlives,那么使用NodeBalancer会遇到什么问题?如果我应该实施KeepAlives,我需要采取什么步骤在我的应用程序中实施它们

另外一个问题是,如果KeepAlives是在socket.io中实现的,那么如果使用HTTP选项而不是TCP,我将面临哪些问题

我的问题是,KeepAlives是否已经在socket.io中实现了 违约

是的,每隔一段时间就会发送一个
ping
数据包(一个非常小的webSocket数据包)作为心跳信号来“测试”连接,确保它仍然正常工作并保持它的活力。从
ping
请求返回
pong
数据包,以便发送方知道
ping
是否通过


socket.io的ping方面的文档记录得很差,但是通过检查socket.io使用的端口,既有
pingTimeout
(等待
pong
响应的时间,也有
pingInterval
(发送
ping
的频率)。

是。您可以设置选项

var myApp=require('express')();
var http=require('http').Server(myApp);

var io=require('socket.io')(http,{'pingTimeout':7000,'pingInterval':3000})你说的HTTP选项是什么意思?你说的是socket.io HTTP轮询吗?Eeeck,你到底为什么要这样做?轮询的效率远远低于webSocket连接。仅供参考,HTTP和socket.io都在下面使用TCP,所以我不确定你为什么要调用一个选项TCP。而且,为了完整起见,请启动socket.io连接也有HTTP请求。@jfriend00 By HTTP选项我指的是Linode NodeBalancer可用的HTTP选项(如我第一段所述)。@kojow7-这回答了你的问题吗?你从哪里得到的信息?
pingTimeout
pingInterval
等?他们的文档中有参考资料吗?