上云无忧 > 文档中心 > 环信IM即时通讯使用教程(Flutter) - 管理子区消息
IM即时通讯
环信IM即时通讯使用教程(Flutter) - 管理子区消息

文档简介:
子区消息消息类型属于群聊消息类型,与普通群组消息的区别是需要添加 isChatThread 标记。本文介绍即时通讯 IM Flutter SDK 如何发送、接收以及撤回子区消息。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

子区消息消息类型属于群聊消息类型,与普通群组消息的区别是需要添加 isChatThread 标记。本文介绍即时通讯 IM Flutter SDK 如何发送、接收以及撤回子区消息。

技术原理

即时通讯 IM Flutter SDK 提供 EMChatThreadManager、EMMessage 和 EMChatThread 类,用于管理子区消息,支持你通过调用 API 在项目中实现如下功能:

  • 发送子区消息
  • 接收子区消息
  • 撤回子区消息
  • 获取子区消息

下图展示在客户端发送和接收消息的工作流程:

如上图所示,消息收发流程如下:

  1. 客户端从应用服务器获取 token。
  2. 客户端 A 和 B 登录即时通讯。
  3. 客户端 A 向客户端 B 发送消息。消息发送至即时通讯 IM 服务器,服务器将消息传递给客户端 B。对于子区消息,服务器投递给子区内其他每一个成员。客户端 B 收到消息后,SDK 触发事件。客户端 B 监听事件并获取消息。

子区创建和查看如下图:

前提条件

开始前,请确保满足以下条件:

  • 已集成 1.0.5 或版本 SDK 的基本功能,完成 SDK 初始化,详见 快速开始。
  • 了解即时通讯 IM 的使用限制,详见 使用限制。
  • 联系商务开通子区功能。

实现方法

本节介绍如何使用即时通讯 IM Flutter SDK 提供的 API 实现上述功能。

发送子区消息

发送子区消息和发送群组消息的方法基本一致,详情请参考 发送消息。唯一不同的是,发送子区消息需要指定标记 isChatThreadMessage 为 true。

示例代码如下:

// targetGroup 为群组 ID EMMessage msg = EMMessage.createTxtSendMessage( targetId: targetGroup, 
content: content, ); // 设置为群组消息 msg.chatType = ChatType.GroupChat; // isChatThreadMessage:
 是否是子区消息,这里设置为 `true`,即是子区消息 msg.isChatThreadMessage
 = true; EMClient.getInstance.chatManager.sendMessage(msg); 
 

接收子区消息

接收消息的具体逻辑,请参考 接收消息,此处只介绍子区消息和其他消息的区别。

子区有新增消息时,子区所属群组的所有成员收到 EMChatThreadEventHandler

#onChatThreadUpdated 事件,子区成员收到 EMChatEventHandler#onMessagesReceived 事件。

示例代码如下:

// 注册子区监听 EMClient.getInstance.chatThreadManager.addEventHandler( "UNIQUE_HANDLER_ID",
 EMChatThreadEventHandler( onChatThreadUpdate: (event) {}, ), ); // 添加消息监听
 EMClient.getInstance.chatManager.addEventHandler( "UNIQUE_HANDLER_ID", EMChatEventHandler
( onMessagesReceived: (messages) {}, ), ); // 移除子区监听 EMClient.getInstance.chatThreadManager.
removeEventHandler("UNIQUE_HANDLER_ID"); // 移除消息监听
 EMClient.getInstance.chatManager.removeEventHandler("UNIQUE_HANDLER_ID"); 
 

撤回子区消息

接收消息的具体逻辑,请参考 撤回消息,此处只介绍子区消息和其他消息的区别。

子区有消息撤回时,子区所属群组的所有成员收到 EMChatThreadEventHandler#onChatThreadUpdated 事件,子区成员收到 EMChatEventHandler#onMessagesRecalled 事件。

示例代码如下:

// 注册子区监听 EMClient.getInstance.chatThreadManager.addEventHandler( "UNIQUE_HANDLER_ID", 
EMChatThreadEventHandler( onChatThreadUpdate: (event) {}, ), ); // 添加消息监听 
EMClient.getInstance.chatManager.addEventHandler( "UNIQUE_HANDLER_ID", EMChatEventHandler
( onMessagesRecalled: (messages) {}, ), ); // 移除子区监听 EMClient.getInstance.chatThrea
dManager.removeEventHandler("UNIQUE_HANDLER_ID"); // 移除消息监听 EMClient.getInstance.
chatManager.removeEventHandler("UNIQUE_HANDLER_ID"); 
 

从服务器获取子区消息 (消息漫游)

从服务器获取子区消息,请参考 从服务器获取消息 (消息漫游)。

相似文档
  • 环信即时通讯 IM SDK 提供消息举报接口。开发者可以在客户端调用该接口举报违规消息。当服务器端审核服务收到举报消息后,会将举报消息存储到数据库,并在 Console 展示。审核员可在 Console 查看举报记录,并进行相应处理。
  • 本文介绍如何快速集成环信即时通讯 IM Unity SDK 实现发送和接收单聊文本消息。 技术原理: 下图展示在客户端发送和接收单聊文本消息的工作流程。
  • 介绍 Unity 集成相关内容。 前提条件: 开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 环信即时通讯云管理后台 (opens new window)。 集成环境: 具体见 集成环境要求。
  • 版本 V1.1.0 Dev 2023-2-25(开发版)新增特性: 依赖的原生平台 iOS 和 Android 的 SDK 升级为 v4.0.0 版本。 新增 ChatManager#GetConversationsFromServerWithPage 方法实现从服务器分页获取会话列表。 新增 Message#Priority 属性实现聊天室消息优先级功能,确保高优先级消息优先处理。
  • 功能描述: 环信即时通讯 IM 支持多种消息类型,开发者可以方便地对本地会话、消息进行管理,可以从服务端获取历史会话和消息,提供送达回执和已读回执能力。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部