【问题标题】:In normal operation, how long will the TCP connection be kept open with websocket正常运行时,TCP连接与websocket保持打开多久
【发布时间】:2013-09-18 22:21:17
【问题描述】:

Websocket 通常是通过从 http 升级协议来完成的 - 但即便如此 - 它也是(直接)在 TCP 之上的一层。

鉴于此 - 我可以期望在 websocket 底层使用单个 TCP 连接多长时间?该连接多久需要更换一次(所有这些都不需要客户端/服务器知道)。

【问题讨论】:

  • 提供的信息无法回答这个问题。 TCP 本身没有这样的限制或顾虑。限制、超时都来自各种操作系统设置、操作系统网络堆栈设置、您的应用程序自己在 Socket 上的设置,以及您和目标之间的每一块硬件的网络硬件设置。

标签: tcp nginx websocket


【解决方案1】:

正如 Joakim Erdfelt 评论的那样,没有办法知道 TCP 连接的确切超时值,因为它是一个可以在参与连接的每个系统上单独配置的值。

但请注意,TCP 连接通常仅在长时间没有通信时才会断开。您可以通过定期发送小的、无意义的保持活动消息来防止这种情况发生。

在我当前的应用程序中,我通过每 10 秒 ping 一次客户端来执行此操作。这样做的好处是我还可以很好地统计网络延迟。

【讨论】:

  • Pinging 还可以让您更好地了解何时应该关闭套接字。有时客户会默默地死去。
  • 对于 ping 的简单实现,只需查看 irc 协议。
  • 我能指望它存活几秒钟吗?分钟?小时?或以上所有? !
猜你喜欢
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多