浏览 SDKs · React Native
平台
SDKsReact Native

订阅用户在线状态

OpenIM React Native SDK 订阅用户在线状态。

复制

订阅指定用户的在线状态。建议只订阅当前界面可见的用户。

const userIDs = [...new Set(visibleUserIDs.filter(Boolean))];
const states = await OpenIMSDK.subscribeUsersStatus(userIDs);

参数说明

传入要订阅的目标用户 ID 数组 string[]。

返回结果

调用完成后返回这些用户当前的 UserOnlineState[] 状态快照,常用字段如下:

字段类型含义
userIDstring状态所属用户的 ID,客户端合并标识。
statusOnlineState在线状态:OnlineState.Online 表示在线,OnlineState.Offline 表示离线。
platformIDsPlatform[](可选)用户当前登录在线的平台列表。

在线状态只表示用户与 OpenIM 服务端的长连接连通情况,不代表用户正在查看应用或某个具体会话。

监听在线状态变化

订阅用户的在线状态变化时,触发 OnUserStatusChanged 事件:

const handleStatusChanged = (state: UserOnlineState) => {
  // 按 state.userID 更新在线状态
};

// 设置监听
OpenIMSDK.on(OpenIMEvent.OnUserStatusChanged, handleStatusChanged);

// 取消监听
OpenIMSDK.off(OpenIMEvent.OnUserStatusChanged, handleStatusChanged);

退出登录、切换账号或不再需要展示这些用户时,取消订阅并移除监听。