gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:49:41 25 4
gpt4 key购买 nike

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

看了他们的文档,发现超时是可以修改的,默认是320秒。为我的网站实现此功能后,我发现有些滞后,我不确定是否是 pubnub 导致了这个问题。

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

enter image description here

FYI, my pubnub settings only consist of publisher key, subscriber key, uuid and ssl (true)

最佳答案

PubNub 订阅连接和长轮询周期

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

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

挂起的连接

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

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

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

只有当您的 ISP 主动关闭“空闲”(挂起)连接的速度快于 280 秒时,您才应该将该值设置得更短。这种情况非常罕见,但确实会发生。

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

对内存没有影响

但是您问的是是否对内存有某种影响。答案是——它不应该产生负面影响。如果您遵循 Nicolas Fodor 的回答/建议,您可能能够确认,但 1000 名客户参与其中,我们的 JavaScript SDK 没有与此相关的任何内存问题。只要确保您使用的是 latest version of our SDKs并将您发现的任何错误/问题报告给 PubNub Support有完整的细节。

存在心跳

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

另见:

关于javascript - pubnub心跳间隔对内存有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63464878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com