Ami*_*hak 2 javascript ajax heartbeat google-chrome-devtools pubnub
我已经实现了 pubnub 来创建一个用于接收实时消息的套接字连接。我在开发人员工具中注意到的一件事是 - pubnub 心跳状态显示等待特定时间间隔,主要在 4.3-5 分钟之间。
看了他们的文档,发现超时时间是可以修改的,默认是320秒。在为我的网站实施此功能后,我可以注意到一些延迟,我不确定是否是 pubnub 导致了问题。
请让我了解挂起状态背后的想法。另外,如果它对内存有影响。如果是,那么影响与心跳间隔的增加或减少有何关系?
仅供参考,我的 pubnub 设置仅包含发布者密钥、订阅者密钥、uuid 和 ssl(真)
您看到的是heartbeat查询参数,但这不是“ presence heartbeat” API。这是订阅长轮询连接,它将保持打开状态,直到:
PENDING仅表示subscribe连接处于打开状态并等待发布消息。这是预期的。
我强烈建议您不要更改此值,除非有充分的理由。你把它变长了还是变短了?
您应该将值设置得更短的唯一时间是,如果您的 ISP 主动关闭“空闲”(挂起)连接的速度超过 280 秒。这是非常罕见的,但确实会发生。
您可能会看到subscribe连接被CANCELED。当客户端应用程序更改其频道订阅列表时会发生这种情况:subscribe更改为新频道或unsubscribe现有频道。
但是您要问是否对内存有某种影响。答案是——它不应该产生负面影响。如果您遵循 Nicolas Fodor 的回答/建议,您可能会确认,但有 1000 名客户对此进行了确认,我们的 JavaScript SDK 没有与此相关的任何内存问题。请确保您使用的是我们最新版本的 SDK,并将您发现的任何错误/问题报告给PubNub 支持并提供完整的详细信息。
关于heartbeat查询参数值的另一件事- 它通常默认为 300(秒),这仅在您使用 PubNub Presence 时才重要。如果 PubNub 服务器在这 300 秒(或任何设置)时间内没有收到客户timeout端的消息,则代表该客户端向任何侦听在线事件的人发送在线事件。Atimeout就像一个延迟leave事件。
也可以看看: