首页 > 解决方案 > pubnub心跳间隔对内存有影响吗?

问题描述

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

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

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

在此处输入图像描述

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

标签: javascriptajaxgoogle-chrome-devtoolspubnubheartbeat

解决方案


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事件。

也可以看看:


推荐阅读