浏览 SDKs · React Native
SDKsReact Native

订阅用户在线状态

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

复制

调用 subscribeUsersStatus() 订阅指定用户的在线状态。建议只订阅当前界面需要展示的用户。

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

返回这些用户当前的 UserOnlineState[],字段如下:

字段类型说明
userIDstring状态所属用户的 ID。
statusOnlineStateOnlineState.Online 表示在线,OnlineState.Offline 表示离线。
platformIDsPlatform[](可选)用户当前在线的平台列表。

在线状态只表示用户是否连接 OpenIMServer,不表示用户正在查看应用或某个会话。

监听在线状态变化

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

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

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

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

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