tencent cloud

文档反馈

JavaScript

最后更新时间:2024-11-14 17:56:05

    功能描述

    SDK 既支持分页续拉消息列表,也支持根据指定的消息 sequence 或消息时间跳拉消息列表。
    云端存储的历史消息有存储时长的限制:
    体验版:免费存储 7 天,不支持延长。
    专业版:免费存储 7 天,支持延长。
    旗舰版:免费存储 30 天,支持延长。
    说明
    延长历史消息存储时长是增值服务,您可以登录 Chat Console 修改相关配置,具体计费说明请参加 增值服务资费
    富媒体消息(图片、文件、语音等)对应的文件存储时长,与历史消息存储时长保持一致。

    拉取消息列表

    getMessageList

    分页拉取指定会话的消息列表的接口,当用户进入会话首次渲染消息列表或者用户“下拉查看更多消息”时,需调用该接口。
    说明:
    1. 该接口可用于"拉取历史消息"(直播群除外)。
    2. 直播群默认不存储历史消息,当新用户进入直播间后,只能看到进入直播间后用户发送的消息。为了提升直播间用户粘性,让用户更有参与感,您可在即时通信 IM 控制台>【应用配置】>【功能配置】>【群组配置】->【直播群新成员查看入群前消息量配置】变更新成员可查看最近消息数。该功能仅支持旗舰版使用,新入群成员查看入群前 24 小时内最新产生的消息,最多可查看 20 条。
    3. 如果您想搜索本地消息,请使用 findMessage,如果您想搜索全量的云端消息,请使用 searchCloudMessages(此功能属于增值服务,需要您购买云端搜索插件,请点击 购买
    接口
    chat.getMessageList(options);
    参数
    参数 options Object 类型,包含的属性值如下:
    名称
    类型
    描述
    conversationID
    String
    会话 ID。
    会话 ID 组成方式:
    C2C${userID}(单聊)
    GROUP${groupID}(群聊)
    GROUP${topicID}(话题)
    @TIM#SYSTEM(系统通知会话)
    nextReqMessageID
    String | undefined
    用于分页续拉的消息 ID。第一次拉取时不要传入 nextReqMessageID,续拉时填入上次调用 getMessageList 接口返回的该字段的值。
    返回值
    Promise
    示例
    // 打开某个会话时,第一次拉取消息列表
    let promise = chat.getMessageList({conversationID: 'C2Ctest'});
    promise.then(function(imResponse) {
    const messageList = imResponse.data.messageList; // 消息列表。
    const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。
    const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。
    });
    // 下拉查看更多消息
    let promise = chat.getMessageList({conversationID: 'C2Ctest', nextReqMessageID});
    promise.then(function(imResponse) {
    const messageList = imResponse.data.messageList; // 消息列表。
    const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。
    const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。
    });

    getMessageListHopping

    根据指定的消息 sequence 或 消息时间拉取会话的消息列表的接口。
    接口
    chat.getMessageListHopping(options);
    参数
    参数 options Object 类型,包含的属性值如下:
    名称
    类型
    描述
    conversationID
    String
    会话 ID。
    会话 ID 组成方式:
    C2C${userID}(单聊)
    GROUP${groupID}(群聊)
    GROUP${topicID}(话题)v2.19.1 起支持
    sequence
    Number | undefined
    用于拉群组会话漫游消息的起始 sequence。
    time
    Number | undefined
    消息的服务端时间,用于拉 C2C 会话漫游消息的起始时间。
    direction
    Number
    消息拉取方向,默认 0。
    0 向上拉,拉更旧的消息
    1 向下拉,拉更新的消息
    count
    Number | undefined
    需要拉取的消息数量,默认值和最大值为15,即一次拉取至多返回15条消息。
    返回值
    Promise
    示例
    // 根据 sequence 拉群漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息
    let promise = chat.getMessageListHopping({
    conversationID: 'GROUPtest',
    sequence: xxx,
    count: 15,
    direction: 0
    });
    promise.then(function(imResponse) {
    const { messageList, isCompleted, nextMessageSeq } = imResponse.data;
    // messageList - 消息列表
    // isCompleted - 拉取完成标识, true 已拉完,false 未拉完,可以通过 nextMessageSeq 的返回值进行续拉
    // nextMessageSeq - 续拉起始 sequence,当 isCompleted 返回 true 时,nextMessageSeq 返回空字符串
    });
    // 根据时间拉 C2C 会话漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息
    let promise = chat.getMessageListHopping({
    conversationID: 'C2Ctest',
    time: xxx,
    count: 15,
    direction: 0
    });
    promise.then(function(imResponse) {
    const { messageList, isCompleted, nextMessageTime } = imResponse.data;
    // messageList - 消息列表
    // isCompleted - 拉取完成标识,true 已拉完,false 未拉完,可以通过 nextMessageTime 的返回值进行续拉
    // nextMessageTime - 续拉起始时间,当 isCompleted 返回 true 时,nextMessageTime 返回空字符串
    });
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持