【发布时间】:2017-03-06 19:55:51
【问题描述】:
我在 Linode 服务器上使用 node.js 和 socket.io。有人告诉我,我应该在我的应用程序中使用 KeepAlives,以便使用 Linode NodeBalancer。我还被告知我必须将 NodeBalancer 协议设置为使用 TCP 而不是(HTTP 或 HTTPS 都禁用 KeepAlives)。
我的问题是,默认情况下,keepAlives 是否已经在 socket.io 中实现?似乎有些东西使连接保持活动状态,所以我认为这已经由 socket.io 处理。但是,我似乎找不到有关此主题的任何信息。如果在 socket.io 中默认没有实现 KeepAlives,使用 NodeBalancer 会遇到什么问题?如果我应该实施 KeepAlives,我需要采取哪些步骤才能在我的应用中实施它们?
另外一个问题,如果在 socket.io 中实现 KeepAlives,如果我使用 HTTP 选项而不是 TCP,我会遇到什么问题?
【问题讨论】:
-
HTTP 选项是什么意思?你的意思是 socket.io http 轮询? Eeeck,你到底为什么要那样做?轮询的效率大大低于 webSocket 连接。仅供参考,HTTP 和 socket.io 在下面都使用 TCP,所以我不确定你为什么要调用一个选项 TCP。而且,为了完整性,socket.io 连接也以 HTTP 请求开始。
-
@jfriend00 HTTP 选项是指可用于 Linode NodeBalancer 的 HTTP 选项(如我的第一段所述)。
标签: node.js socket.io keep-alive linode