如何在 Pubnub 中重新连接?

2024-02-21

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

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

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); 

软件开发工具包:4.27.2

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


看看它,您可能会得到一些您没有检查的其他状态响应...而且我认为您需要autoNetworkDetection使用状态来宣布网络何时关闭或开启的标志PNNetworkDownCategory and PNNetworkUpCategory. i.e.

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 to false因为这允许 SDK 重新连接逻辑接管。 IE。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Pubnub 中重新连接? 的相关文章

随机推荐

  • 我是否用这个简单的方法调用转发类重新发明了轮子?

    我刚刚发现自己创建了一个类 template
  • 在插入模式下遍历文本

    而在插入模式在Vim中 除了使用箭头键之外 还有什么方法可以遍历文本 向前和向后移动一些字符 If I press h j k and l while in Insert mode the actual characters are pri
  • 使用硬件加速 Android MediaCodec 解码器的本机代码中的访问冲突

    我的目标是使用 Android MediaCodec 解码视频流 然后使用输出图像在本机代码中进行进一步的图像处理 平台 华硕 tf700t android 4 1 1 测试码流 H 264 全高清 24 frm s 内置 Tegra 3
  • 2022年如何调试JavaFX webview

    如何调试 JavaFX Web 视图 我找到两种方法 一种是将外部 chrome 调试器附加到 JavaFX webview 另一种是注入firebug javascript Method 1 似乎使用了一些技巧 例如设置对私有字段的访问权
  • EclipseLink JPA:我可以从一个构建器运行多个查询吗?

    我有一个构建和运行条件查询的方法 该查询执行我想要的操作 特别是它根据用户输入过滤 和排序 记录 此外 查询大小仅限于屏幕上的记录数 这很重要 因为数据表可能非常大 但是 如果应用过滤器 我想计算在查询不受限制的情况下将返回的记录数 因此
  • Service Worker 的中止控制器

    我有一个 LeafletJS 地图 其中包含许多使用服务工作线程缓存的 protobuf 层 这非常有效并且节省了大量的加载时间 我最近添加了一个中止控制器 以在更改缩放级别时停止获取过程 以从浏览器待处理队列中删除当前缩放级别图块 这也节
  • 任务队列为空后调用脚本

    我正在运行一个启动多个任务的脚本 for i in range 0 5 taskqueue add url example params num i 据我了解 这些任务是并行运行的 一旦我刚刚插入队列的所有任务全部完成 我是否可以告诉 Ap
  • 通过 VPN 故障调试 SVN+SSH 结帐的正确方法?如何与工作设置进行比较?

    In brief 给定一个设置 其中 SVN SSH 通过 VPN 签出不起作用 而另一个设置起作用 找出两个系统之间的差异的正确步骤是什么 Details 我使用的是运行 Windows 7 的 64 位系统 我安装了 Open VPN
  • 在我的 Android 应用程序中包含数据文件

    我正在创建一个应用程序 我想使用该应用程序将用作其初始状态的数据文件来播种 在 Eclipse 项目结构中 我应该在哪里添加数据文件 以便当应用程序部署到设备 和模拟器 时数据文件也随之部署 如果您了解数据文件类型和用途 将会很有帮助 如果
  • 读取命名空间时发生 ReadAsDataContract 异常

    我正在尝试使用此处提到的 twitter 的 REST apilink http apiwiki twitter com Twitter REST API Method statuses friends timeline使用此处提到的 WC
  • 如何自动从函数类型推断返回类型?

    我在用着boost python创建 C 库的 Python 包装器 在某一点 boost python需要一个指向成员函数 或兼容的东西 的指针 例如 template
  • Postgres - 关于值是否包含特定字符串的 WHERE 子句

    如果我想检索所有条目 以便该列foo值包含一个字符串 bar 有没有一种简单的方法可以在 SQL 或 Postgresql 中执行此操作 就像是 WHERE foo bar 但不是 会是这样的 WHERE foo CONTAINS bar
  • HttpContent.ReadAsAsync 在哪里?

    我在网上看到了大量使用新方法的例子HttpClient应该有的对象 作为新 Web API 的一部分 HttpContent ReadAsAsync
  • 如何检测内存泄漏

    我遇到了一些与 android 中的 MemoryOutOfBounds 异常相关的问题 我发现这背后有两个原因 1 创建的线程处于活动状态并且没有在任何地方被销毁 2 内存泄漏 我们可以在eclipse中检测线程信息 但是 当我执行应用程
  • Rails 控制器中的“env”和“request.env”有什么区别?

    我在用着rspec为我的应用程序编写测试 为了授权我发送token在标题中 request headers token 000000099 get index 在控制器端我可以通过以下方式读取这个值request env HTTP TOKE
  • 绘制带圆角的 LinearLayout

    我正在尝试实现一个用圆角绘制自身的 LinearLayout 子类 根据我的研究 我设定setWillNotDraw false 并被覆盖onDraw 在画布上绘制圆角矩形 Override protected void onDraw Ca
  • 为什么用let描述的变量可以在函数内部访问?

    在下面的代码片段中 i是在函数f之后声明的 那么函数f如何访问i的值呢 let f if true f gt console log i let i 1 f i 在函数 f 之后声明 嗯 是的 但在相同的范围 块 内 i被声明在同一个blo
  • Mysql 错误 1241 (21000): 操作数应包含 1 列

    我有具有编号范围的客户组 从客户编号到客户编号 select g id select count sum sales FROM transactions t1 where t1 customernumber between g from c
  • 'c' 参数看起来像单个数字 RGB 或 RGBA 序列

    我的 jupyter 笔记本中出现以下错误 我已经将 matplotlib 更新到最新版本 但仍然出现错误 c 参数看起来像单个数字 RGB 或 RGBA 序列 其中 应避免 因为值映射将优先 长度与 x 和 y 匹配 请使用带有单个 如果
  • 如何在 Pubnub 中重新连接?

    我正在使用 PubNub 在我的 Js 代码中传输通知 一旦互联网断开并恢复 我无法弄清楚如何在 PubNub 中重新连接 恢复 在我的初始化和执行中为真 this listeners message msgEvent gt console