Flutter

圈组消息更新

更新时间: 2024/03/07 11:44:51

NIM SDK 的QChatMessageService类提供圈组消息更新的方法,支持在发送消息后更新消息。

前提条件

实现流程

API 调用时序

以下时序图可能因网络问题而显示异常。如显示异常,一般刷新当前页面即可正常显示。

uml diagram

具体流程

本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:

  1. 接收方在登录圈组前,注册onReceiveMessage消息接收回调和onMessageUpdate消息更新回调,分别监听圈组消息接收和消息更新。

    示例代码如下:

    注册消息接收观察者
    NimCore.instance.qChatObserver.onReceiveMessage.listen((event) {
      //message received
    });
    
    注册消息更新观察者
     NimCore.instance.qChatObserver.onMessageUpdate.listen((event) {
      //message updated
    });
    
    
  2. 发送方在发送消息后,调用updateMessage方法更新消息。

    该方法入参结构QChatUpdateMessageParam中必须传入更新操作通用参数、消息所属的服务器的ID(serverId)、消息所属的频道的 ID(channelId)、消息发送时间以及消息服务端 ID。

    可以修改消息中的内容、自定义扩展和消息服务端状态,其中消息服务端状态值必须大于或等于 1000,否则会返回 414 错误码。


    示例代码如下:

    var paramUpdateMsg = QChatUpdateMessageParam(channelId: channelId,
        updateParam: updateParam,
        serverId: serverId,
        time: time,
        msgIdServer: msgIdServer);
    NimCore.instance.qChatMessageService.updateMessage(paramUpdateMsg).then((
        value) {
      if (value.isSuccess) {
        //update message success
      }
    });
    
  3. onMessageUpdate回调触发,将更新后的消息投递至接收方。

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现流程
  • API 调用时序
  • 具体流程