tencent cloud

文档反馈

最后更新时间:2024-06-12 18:00:47

    功能描述

    某些场景下,您可能希望发出去的消息只被在线用户接收,即当接收者不在线时就不会感知到该消息。您只需在 sendMessage 时,将参数 onlineUserOnly 设置为 true,此时发送出去的消息跟普通消息相比,会有如下差异点:
    1. 不支持离线存储,即如果接收方不在线就无法收到。
    2. 不支持多端漫游,即如果接收方在一台终端设备上一旦接收过该消息,无论是否已读,都不会在另一台终端上再次收到。
    3. 不支持本地存储,即本地的、云端的历史消息中均无法找回。

    经典示例

    实现“对方正在输入”功能
    在 C2C 单聊场景下,您可以通过 sendMessage 接口发送 "自己正在输入" 的提示性消息,接收方收到该消息时可以在 UI 界面展示 "对方正在输入",
    示例
    chat.sendMessage(message, {
    onlineUserOnly: true // 如果接收方不在线,则消息不存入漫游,且不会进行离线推送
    });
    实际上,要实现一个完整的 “对方正在输入...” 的提示,利用 Chat SDK 发送在线消息只是一个小环节,还需要很多开发工作,例如:
    用户界面监听及状态更新:在发送消息的输入框中添加事件监听器,检测用户何时开始输入。开始输入时,客户端更新用户的状态,例如“正在输入”。
    向服务器发送状态:在合适的时机将用户的输入状态发送到服务器。
    用户界面更新:根据接收到的输入状态,在接收端的用户界面上显示“对方正在输入”的提示,可以是一个文本提示、图标或动画。
    考虑节流:为了减少不必要的状态更新和通信开销,可以设定一个时间间隔,在此间隔内只发送一次输入状态更新。
    我们的 TUIKit 库已经实现了上述功能,您只需要集成 TUIKit 组件并开启该功能,即可立即获得“对方正在输入”,实际功能效果图如下所示:
    
    详情可参见聊天互动文档《对方正在输入》。
    
    联系我们

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

    技术支持

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

    7x24 电话支持