监听客户端上下线状态变化 - PubSub (Websocket)
前置条件
资费
- GoEasy系统每推送一次presenceEvents,扣减消息量1条
- 每个客户端收到一次presenceEvents,扣减消息量 1条
监听客户端上下线状态变化
上下线状态变化会触发的事件(action)四种类型:
- join: 上线,客户端首次执行代码订阅channel
- leave: 离开,客户端主动执行unsubscribe方法取消某个 channel 的订阅
- online: 重新上线,客户端已经订阅了channel,因为网络原因或执行了disconnect方法断开连接后,重连自动或手动连接成功后上线
- offline: 下线,客户端已经订阅了 channel,执行disconnect方法或因为网络质量断开连接导致下线
如果一个id同时打开了多个客户端,join和online只会在第一个上线的客户端上线时触发, leave和offline只会在最后一个下线的客户端下线时触发。
换句话说:
如果已经有一个客户端订阅了该channel并且当前是在线状态时,使用同一个id的其他客户端上线时,不会触发上线提醒;
如果还存在一个客户端订阅了该channel并且当前是在线状态时,使用同一个id的其他客户端下线时,不会触发下线提醒。
JavaScript监听上下线状态变化
goeasy.pubsub.subscribePresence({
channel: "my_channel",
onPresence: function (presenceEvents) {
console.log("Presence events: ", JSON.stringify(presenceEvents));
},
onSuccess: function () { //监听成功
console.log("subscribe presence successfully.")
},
onFailed: function (error) { //监听失败
console.log("Failed to subscribe presence, code:" + error.code + ",error:" + error.content);
},
});