跳到主要内容

监听客户端上下线状态变化 - PubSub (Websocket)

前置条件

资费

  1. GoEasy系统每推送一次presenceEvents,扣减消息量1条
  2. 每个客户端收到一次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);
},
});