订阅用户在线状态
本文档旨在指导开发者如何在融云即时通讯 Flutter IMLib SDK 中实现用户在线状态的订阅、查询和监听。通过本文档,Flutter 开发者将了解如何获取和跟踪用户在线状 态,以及在状态变更时接收通知。
提示
此功能在 5.24.3 版本开始支持。
开通服务
您可以通过融云控制台 IM 服务的服务购买页面开通客户端用户在线状态订阅服务。

订阅用户在线状态
为了跟踪特定用户的在线状态,您需要使用 subscribeEvent 方法进行订阅。
- 定义订阅用户 ID 列表:创建一个包含您希望订阅用户 ID 的列表(即单聊的
targetId)。一次订阅的用户 上限为 200 个,订阅的用户总数最多为 1000 个,一个用户最多可以被 5000 个用户订阅。 - 设置订阅时间:定义一个整数值,表示订阅持续时间,范围为 60 秒到 2592000 秒。
- 指定订阅类型:使用
RCIMIWSubscribeType.onlineStatus。 - 调用
subscribeEvent执行订阅。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
request | RCIMIWSubscribeEventRequest | 订阅请求 |
callback | IRCIMIWSubscribeEventCallback | 结果回调 |
RCIMIWSubscribeEventRequest 字段
| 字段 | 类型 | 说明 |
|---|---|---|
subscribeType | RCIMIWSubscribeType | 在线状态:onlineStatus(1) |
expiry | int | 订阅时长(秒),范围 [60~2592000] |
userIds | List<String> | 待订阅的用户 ID,单次最多 200 个 |
示例代码:
Dart
final RCIMIWSubscribeEventRequest request = RCIMIWSubscribeEventRequest.create(
subscribeType: RCIMIWSubscribeType.onlineStatus,
expiry: 180000,
userIds: <String>["user1", "user2", "user3"],
);
final IRCIMIWSubscribeEventCallback callback = IRCIMIWSubscribeEventCallback(
onSuccess: () {
// 订阅成功
},
onError: (int? code, List<String>? failedUserIds) {
// 订阅失败
},
);
final int? ret = await engine.subscribeEvent(request, callback: callback);