如何通过Connectycube Javascript API获取1对1聊天中对方用户的活跃状态?
获取Connectycube JavaScript API 1对1聊天对方用户的活跃/非活跃状态
实现方案
1. 利用Presence模块订阅并监听对方状态
Connectycube的Presence模块专门用于追踪用户在线状态,具体操作如下:
初始化并订阅对方用户
确保已完成Connectycube登录和聊天模块初始化,然后订阅目标用户的状态:
// 初始化Presence模块 Connectycube.chat.presence.init(); // 假设对方用户ID存储在opponentUserId变量中 Connectycube.chat.presence.subscribe({userIds: [opponentUserId]}, (error) => { if (error) console.error('订阅状态失败:', error); });
监听状态变更事件
订阅后,通过onPresenceChange事件获取对方状态更新:
Connectycube.chat.presence.on('onPresenceChange', (presenceList) => { const opponentStatus = presenceList.find(item => item.userId === opponentUserId); if (opponentStatus && !opponentStatus.isOnline) { // 对方已离线,执行你的登出逻辑 console.log('对方已离开'); Connectycube.auth.logout((error) => { if (!error) console.log('成功登出'); }); } });
2. 补充:监听聊天连接断开事件
如果对方异常断开(如直接关闭页面),可以通过聊天连接事件辅助判断:
Connectycube.chat.on('onDisconnected', () => { // 结合当前1对1会话的上下文,执行登出逻辑 console.log('对方连接已断开'); Connectycube.auth.logout(); });
关键注意点
- 必须确保用户已成功登录Connectycube并加入对应聊天会话
- 订阅时
userIds需传入数组格式,即使仅单个用户ID - Presence状态更新存在轻微延迟,结合断开事件能提升判断准确性
内容的提问来源于stack exchange,提问作者Claudio Quezada
相关产品推荐
相关产品推荐

