【问题标题】:Set Socket.IO polling frequency?设置 Socket.IO 轮询频率?
【发布时间】:2022-01-20 17:13:46
【问题描述】:

在使用长轮询传输时,有什么方法可以设置(即减少)Socket.IO (v4.4) 的轮询频率?是在服务器上还是在客户端上?

长轮询传输被描述为in the documentation,通常在无法建立 WebSocket 连接时充当后备(但可以显式设置):

Socket.IO 服务器 (Node.js) 和 Socket.IO 客户端(浏览器、Node.js 或其他编程语言)之间的双向通道尽可能使用 WebSocket 连接建立,并且将使用 HTTP long-轮询作为后备。

【问题讨论】:

    标签: socket.io


    【解决方案1】:

    简短回答:否 长答案: 好吧,这不是 Socket.io 的工作方式。 它不会“投票” 这将破坏提高性能和诸如此类的整个目的。 socket.io 在客户端所做的是等待服务器发送数据。它不会向服务器询问它。发送消息也是一样。 和服务器上完全相同的东西。 这就是为什么您不必担心投票率。

    【讨论】:

    • 文档说:“Socket.IO 服务器(Node.js)和 Socket.IO 客户端(浏览器、Node.js 或其他编程语言)之间的双向通道已建立尽可能使用 WebSocket 连接,并且将使用 HTTP 长轮询作为后备。” 问题是关于后备的。如果 Socket.IO 使用 WebSocket,当然没有轮询。
    • 我正在写一些与此不同的东西,但我刚刚意识到,据说它使用“长轮询”长轮询不是以特定频率连续发送数据。它只是发送一些数据并等待回复。发生更改时发送回复。你的想法是,这是短期投票。当您继续向服务器发送数据和从服务器发送数据时,Socket.io 不会这样做。所以,你实际上不能改变它
    • 总而言之,我上面的评论,“长轮询”不是“短轮询”,你对它们都感到困惑
    • 好的,你在长轮询上是对的。但是,如果服务器在大约 50 毫秒后回复(因为发出了一条新消息),但您只需要每 500 毫秒更新一次,那么如果 Socket.IO 可以选择自动缓冲消息并将其中大约 10 条消息一起传送,那就太好了给客户。
    • 它使用“HTTP 长轮询作为‘后备’”。谷歌词典定义的后备意味着“可能在紧急情况下使用的替代计划”。这意味着当 socket.io 连接失败时,它使用长轮询。而且,它是 socket.io 主要使用的
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2011-04-20
    • 2021-04-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多