pubnub心跳间隔对内存有影响吗?

Ami*_*hak 2 javascript ajax heartbeat google-chrome-devtools pubnub

我已经实现了 pubnub 来创建一个用于接收实时消息的套接字连接。我在开发人员工具中注意到的一件事是 - pubnub 心跳状态显示等待特定时间间隔,主要在 4.3-5 分钟之间。

看了他们的文档,发现超时时间是可以修改的,默认是320秒。在为我的网站实施此功能后,我可以注意到一些延迟,我不确定是否是 pubnub 导致了问题。

请让我了解挂起状态背后的想法。另外,如果它对内存有影响。如果是,那么影响与心跳间隔的增加或减少有何关系?

在此处输入图片说明

仅供参考,我的 pubnub 设置仅包含发布者密钥、订阅者密钥、uuid 和 ssl(真)

Cra*_*ver 5

PubNub 订阅连接和长轮询周期

您看到的是heartbeat查询参数,但这不是“ presence heartbeat” API。这是订阅长轮询连接,它将保持打开状态,直到:

  • 在您订阅的其中一个频道上发布了一条消息
  • 或者,如果 280 秒后订阅频道之一没有消息发布,则连接关闭(200 响应没有消息),SDK 将打开一个新的订阅连接。

挂起连接

PENDING仅表示subscribe连接处于打开状态并等待发布消息。这是预期的。

我强烈建议您不要更改此值,除非有充分的理由。你把它变长了还是变短了?

  • 从技术上讲,较短的长轮询几乎没有价值,实际上也没有危害,但会导致更多的订阅/边缘交易。
  • 更长的轮询具有实际的技术缺点,因为您的客户端将在 280 秒到期后断开连接,但在您为客户端设置的新自定义到期时间结束之前不会重新连接。

您应该将值设置得更短的唯一时间是,如果您的 ISP 主动关闭“空闲”(挂起)连接的速度超过 280 秒。这是非常罕见的,但确实会发生。

您可能会看到subscribe连接被CANCELED。当客户端应用程序更改其频道订阅列表时会发生这种情况:subscribe更改为新频道或unsubscribe现有频道。

对内存没有影响

但是您要问是否对内存有某种影响。答案是——它不应该产生负面影响。如果您遵循 Nicolas Fodor 的回答/建议,您可能会确认,但有 1000 名客户对此进行了确认,我们的 JavaScript SDK 没有与此相关的任何内存问题。请确保您使用的是我们最新版本的 SDK,并将您发现的任何错误/问题报告给PubNub 支持并提供完整的详细信息。

状态心跳

关于heartbeat查询参数值的另一件事- 它通常默认为 300(秒),这仅在您使用 PubNub Presence 时才重要。如果 PubNub 服务器在这 300 秒(或任何设置)时间内没有收到客户timeout端的消息,则代表该客户端向任何侦听在线事件的人发送在线事件。Atimeout就像一个延迟leave事件。

也可以看看: