PubNub Subscribe 一直退订

PubNub Subscribe Keeps Unsubscribing

我正在使用 PubNub Node.js 模块收听频道,但它会随机取消订阅,如果发生这种情况,我希望它能自动重新连接。

我添加了 restore: true 选项,但这似乎不起作用。

const pubnub = new PubNub({
  subscribeKey: config.SUB_KEY,
  uuid: config.UUID,
  restore: true,
  autoNetworkDetection: true,
});

PubNub 函数而不是服务器端订阅

要考虑的服务器端订阅挑战

在服务器上订阅需要您的服务器始终保持与 PubNub 的打开连接。对于单个通道或多个通道,这并不困难。但是将它扩展到数千个通道,你就会在你的服务器上承担相当多的责任,你需要以一种可扩展和常驻的方式来实现它。

  • 如果服务器宕机怎么办,是否有另一个实例可以收听这些频道?
  • 在您需要更多实例来处理负载之前,您的服务器可以处理多少 channels/message(消息速率)?
  • 如果您有多个实例订阅相同的频道,您如何确定哪个服务器处理每条消息(防止重复处理)?
  • 如果没有在所有实例中重复这些频道,您如何确定每个服务器侦听哪些频道?

PubNub 会扩展,但您的 server/s 会扩展吗?使用最佳实践可以解决上述所有问题(如果您需要这种设计,请联系 PubNub 支持人员),但还有另一种方法需要您做的工作更少,并且会给 PubNub 带来负担,这就是为什么我们存在,using PubNub Functions.

PubNub 函数 FTW!

那么,您希望您的服务器接收发布到一个频道(或多个频道)的消息吗?创建绑定到您最初订阅的频道的 After Publish 函数,并将消息发送到您的服务器 using xhrPOST 消息。您需要在您的服务器上提供一个 REST 端点来接收这些 Web 请求,但这将是您用来接收 subscribe 消息的代码。您只需要将该代码添加到您的 REST 端点(假设您知道如何实现此端点,但如果不知道,则有很多关于此的内容)。

如果您想在消息发送到您的服务器之前对其进行修改,请使用 发布前功能.

要快速启动第三方功能的函数代码,您可以查看 PubNub Integrations。但是入门所需的代码很简单 xhr.