【问题标题】:what is the default pingTimeout and pingInterval in socket.iosocket.io 中默认的 pingTimeout 和 pingInterval 是什么
【发布时间】:2018-10-19 22:21:55
【问题描述】:

我只想知道socket.io中pingTimeout和PingInterval的默认值是多少?我在文档中读到了以下值:

  pingTimeout (Number): how many ms without a pong packet to consider the connection closed (60000)
  pingInterval (Number): how many ms before sending a new ping packet (25000).

这些是默认值吗?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    2021 年 12 月 25 日更新:socket.io 文档现在显示,从 v4 开始,默认 pingTimeout 为 20000 毫秒(20 秒)


    pingTimeout 的默认值已经从版本 2.x 到 3.x 到 4.x,根据文档当前的 4.x 是:

    • ping 超时:20000 毫秒(20 秒)
    • pingInterval:25000 毫秒(25 秒)

    如果您愿意,您可以进行不同的设置。鉴于您指的是最新版本的 socket.io(版本 4)和https://socket.io/docs/v4/server-options/#pingtimeout的文档

    【讨论】:

    • 好的。因此,如果我在服务器以 25 秒的间隔发送两个 pingPacket 并且没有收到任何 pongPacket 作为回报时是正确的,那么在第 50 秒的 10 秒后,该特定套接字连接将被关闭。我说的对吗?
    • @roh_dev 那是正确的,我相信有一次它是默认的 60/30,但是对于延迟几乎没有容忍度。如果您想要更持久的连接,您可以增加超时或降低间隔。我应该从文档中注意到,“客户端可能必须等待 pingTimeout + pingInterval ms 才能获得断开连接事件。”
    • 对于遇到此答案的任何人来说,仅供参考,但最新版本的 socket.io 的默认 pingTimeout 为 5000 毫秒(5 秒),每个链接到此答案的文档。
    • 链接已损坏。你有替代品吗?
    • @theknightD2 - 更新了链接和答案,因为最新的 v4 默认再次更改。
    【解决方案2】:

    对于“socket.io”:“^2.1.1”,pingInterval 为 60 秒,最新的 chrome 在 60 秒时也变得理想,所以如果您在服务器上有旧的 socket.io 包,那么您需要将 pingInterval 设置为25 秒即可正常工作

    【讨论】:

    猜你喜欢
    • 2018-09-26
    • 2023-03-06
    • 1970-01-01
    • 2021-10-16
    • 2018-06-21
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多