javascript - 如何在 Pubnub 中重新连接?
问题描述
我正在使用 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 最多 N 次尝试),订阅现有订阅频道。
解决方案
看着它,您可能会收到其他一些您没有检查的状态响应......而且我认为您需要使用autoNetworkDetection
标志来宣布网络何时关闭或使用状态PNNetworkDownCategory
和PNNetworkUpCategory
. IE
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 重新连接逻辑接管。IE
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
推荐阅读
- c# - 实现抽象类与接口
- git - 是否可以解决拉取请求合并提交中的冲突?
- ios - App Proxy Provider 和 Packet Tunnel Provider 的区别
- vue.js - Vue js socket.io-client连接方法未执行
- python - 无法在表中插入多行
- typescript - 在 Visual Studio Code (VSCode) 中检测问题面板渲染完成
- java - Jboss EAP 7.4.1 配置问题
- python - 如何在 web apache 服务器上自动化 python 脚本
- html - 带有自动分页符的 HTML+CSS A4 页面
- sql - 如何在sql中将最大长度设置为int数据类型