SDKsReact Native
订阅用户在线状态
OpenIM React Native SDK 订阅用户在线状态。
调用 subscribeUsersStatus() 订阅指定用户的在线状态。建议只订阅当前界面需要展示的用户。
const userIDs = [...new Set(visibleUserIDs.filter(Boolean))];
const states = await OpenIMSDK.subscribeUsersStatus(userIDs);返回这些用户当前的 UserOnlineState[],字段如下:
| 字段 | 类型 | 说明 |
|---|---|---|
userID | string | 状态所属用户的 ID。 |
status | OnlineState | OnlineState.Online 表示在线,OnlineState.Offline 表示离线。 |
platformIDs | Platform[](可选) | 用户当前在线的平台列表。 |
在线状态只表示用户是否连接 OpenIMServer,不表示用户正在查看应用或某个会话。
监听在线状态变化
订阅用户的在线状态变化时,触发 OnUserStatusChanged 事件:
const handleStatusChanged = (state: UserOnlineState) => {
// 按 state.userID 更新在线状态
};
// 设置监听
OpenIMSDK.on(OpenIMEvent.OnUserStatusChanged, handleStatusChanged);
// 取消监听
OpenIMSDK.off(OpenIMEvent.OnUserStatusChanged, handleStatusChanged);退出登录、切换账号或不再需要展示这些用户时,取消订阅并移除监听。
这个页面有帮助吗?