订阅在线状态
本文档旨在指导开发者如何在融云即时通讯客户端 SDK 中实现用户在线状态的订阅、查询和监听。通过本文档,开发者将了解如何获取和跟踪用户在线状态,以及如何在状态变更时接收通知。
注意 此功能在 5.9.8 版本开始支持。
开通服务
您可以通过控制台开通服务。在融云控制台,选择 IM 服务 > IM 服务管理 > 客户端用户在线状态订阅 ,开启服务。
订阅用户在线状态
为了跟踪特定用户的在线状态,您需要使用 subscribeUserStatus 方法进行订阅。以下是具体的操作步骤和示例代码:
- 定义订阅用户 ID 列表:创建一个包含您希望订阅用户 ID 的数组,即单聊的
targetId
。一次订阅用户的上限为 200 个, 订阅的用户数最多为 1000 个,一个用户最多可以被 5000 个用户订阅。 - 设置订阅时间:定义一个时间值,该值表示订阅的持续时间,订阅时长的范围为 60 秒到 2592000 秒。
- 指定订阅类型:使用
RongIMLib.SubscribeType.ONLINE_STATUS
来指定订阅的是用户在线状态。 - 使用
subscribeUserStatus
方法执行订阅操作。
// 订阅订阅用户userId列表,也是单聊的 targetId (一次最多订阅 200 个)。
const userIds = ['user1', 'user2']
// 设置订阅时间,取值范围为[60,2592000](单位:秒)。
const expiry=180000;
// 指定订阅类型为用户在线状态。
const type = RongIMLib.SubscribeType.ONLINE_STATUS
RongIMLib.subscribeUserStatus(userIds, type, expiry).then((res) => {
if (res.code === RongIMLib.ErrorCode.SUCCESS) {
console.log('订阅成功')
} else if (res.code === RongIMLib.ErrorCode.RC_BESUBSCRIBED_USERIDS_COUNT_EXCEED_LIMIT) {
console.log('用户被订阅达到上限', res.code, res.data)
} else {
console.log('订阅失败', res.code, res.msg)
}
})