PresenceManager 负责在线状态发布、订阅、查询与事件处理器管理。

Constructors

Methods

  • 注册 Presence 事件处理器,用于接收在线状态变更推送。

    Parameters

    • id: string

      事件处理器唯一 ID,用于后续移除。

    • handlers: PresenceEventHandlerMap

      事件处理器集合,按需实现对应回调。

    可监听事件

    onPresenceStatusChange

    PresenceEventName

    Returns void

    注册完成后无返回值。

    client.presenceManager.addEventHandler('presence-ui', {
    onPresenceStatusChange: (states) => {
    console.log(states);
    },
    });
  • 移除 Presence 事件处理器。

    Parameters

    • id: string

      待移除的事件处理器 ID。

    Returns void

    移除完成后无返回值。

    client.presenceManager.removeEventHandler('presence-ui');
    
  • 发布当前用户的自定义在线状态,该状态会作为在线状态扩展描述信息保存并下发给订阅者。

    Parameters

    Returns Promise<void>

    成功时 resolve,无返回业务数据。

    await client.presenceManager.publishPresence({
    customStatus: 'busy',
    });
    Code 含义 HTTP 处理建议 可重试
    1100 发布自定义在线状态时,参数长度超出限制 400 缩短 customStatus 后重试
  • 订阅指定用户的在线状态。订阅成功后,这些用户在线状态变更时会触发 Presence 事件回调。

    Parameters

    Returns Promise<SubscribePresenceResponse>

    返回归一化后的在线状态列表。

    const result = await client.presenceManager.subscribePresence({
    userIds: ['userA'],
    expiry: 3600,
    });
    console.log(result[0]?.publisher);
    Code 含义 HTTP 处理建议 可重试
    1101 不能订阅自己的在线状态 400 从订阅列表中移除当前用户
    1100 参数长度超限 400 减少单次订阅的用户数量
  • 取消订阅指定用户的在线状态,成功后不再接收这些用户的在线状态变更事件。

    Parameters

    Returns Promise<void>

    成功时 resolve,无返回业务数据。

    await client.presenceManager.unsubscribePresence({
    userIds: ['userA'],
    });
    Code 含义 HTTP 处理建议 可重试
    1100 参数长度超限 400 减少单次取消订阅的用户数量
  • 分页查询当前用户订阅了哪些用户的在线状态。

    Parameters

    Returns Promise<SubscribedPresenceListResponse>

    返回订阅用户 ID 列表。

    const list = await client.presenceManager.getSubscribedPresenceList({
    pageNum: 1,
    pageSize: 20,
    });
    console.log(list);
    Code 含义 HTTP 处理建议 可重试
    1100 参数长度超限 400 调整 pageNum 或 pageSize 后重试
  • 查询指定用户的当前在线状态,不会建立订阅关系。

    Parameters

    Returns Promise<SubscribePresenceResponse>

    返回归一化后的在线状态列表。

    const status = await client.presenceManager.getPresenceStatus({
    userIds: ['userA'],
    });
    console.log(status[0]?.statusList);
    Code 含义 HTTP 处理建议 可重试
    1100 参数长度超限 400 减少单次查询的用户数量