【问题标题】:How to reconnect in Pubnub?如何在 Pubnub 中重新连接?
【发布时间】:2020-04-06 16:08:36
【问题描述】:

我正在使用 PubNub 在我的 Js 代码中传输通知。一旦互联网断开并重新连接,我无法弄清楚如何在 PubNub 中重新连接。

在我的初始化和执行中恢复:true

this.listeners = {
  message: msgEvent => {
    console.log(msgEvent);
  },
  status: statusEvent => {
    if (statusEvent.category === "PNNetworkUpCategory") {
      this.pubnub.reconnect();
}}};

对我不起作用。

完整代码:

this.pubnub = new PubNub({
  subscribeKey: this.serverDetails.authInfo.subscribeKey,
  authKey: this.serverDetails.authInfo.authKey,
  uuid,
  restore: true
  ssl: true
});

this.listeners = {
  message: msgEvent => {
    console.log(msgEvent);
  },
  status: statusEvent => {
    if (statusEvent.category === "PNNetworkUpCategory") {
      this.pubnub.reconnect();
    }
  }
};

this.pubnub.addListener(this.listeners); 

SDK:4.27.2

期望:尝试重新连接 PubNub 最多 N 次尝试),订阅现有订阅频道。

【问题讨论】:

  • 大声笑我读了你在标题中使用的服务名称错误:D
  • 这能回答你的问题吗? pubnub js reconnect not working for me
  • @Frasernot 真的。它不会自行重新连接..
  • 然后告诉我们:哪个 SDK,提供完整的初始化配置,启用和共享日志。问题是“为什么这不起作用”并且没有提供足够的信息来回答。
  • @Fraser 更新问题。

标签: javascript publish-subscribe pubnub


【解决方案1】:

看着它,您可能会收到其他一些您没有检查的状态响应......另外我认为您需要autoNetworkDetection 标志来宣布网络何时关闭或使用状态PNNetworkDownCategory 和PNNetworkUpCategory。即

this.pubnub = new PubNub({
  subscribeKey: this.serverDetails.authInfo.subscribeKey,
  authKey: this.serverDetails.authInfo.authKey,
  uuid,
  restore: true,
  ssl: true,
  autoNetworkDetection: true
});

this.listeners = {
  message: msgEvent => {
    console.log(msgEvent);
  },
  status: statusEvent => {
    if (statusEvent.category === "PNNetworkUpCategory") {
      this.pubnub.reconnect();
    } else {
      // check for other status events - PNTimeoutCategory, PNNetworkIssuesCategory, etc
      console.log(statusEvent.category);
    } 
  }
};

如果失败并且您仍然遇到重新连接问题,您应该将标志 listenToBrowserNetworkEvent 设置为 false,因为这允许 SDK 重新连接逻辑接管。即

this.pubnub = new PubNub({
  subscribeKey: this.serverDetails.authInfo.subscribeKey,
  authKey: this.serverDetails.authInfo.authKey,
  uuid,
  restore: true,
  ssl: true,
  listenToBrowserNetworkEvents: false
});

见:https://www.pubnub.com/docs/web-javascript/pubnub-network-lifecycle#pnnetworkupcategory

【讨论】:

  • 它应该与默认配置一起使用,除了 restore:true 是必需的并且不需要调用 reconnect
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2018-04-27
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多