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

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

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

技术原理

环信即时通讯 IM SDK 支持你通过调用 API 在项目中实现如下功能:

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

消息收发流程如下:

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

子区创建和查看如下图:

前提条件

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

  • 完成 4.0.7 及以上版本 SDK 初始化,详见 快速开始;
  • 了解环信即时通讯 IM API 的 使用限制。
  • 了解子区和子区成员数量限制,详见 使用限制。
  • 联系商务开通子区功能。

实现方法

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

发送子区消息

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

单设备登录时,子区所属群组的所有成员会收到 onChatThreadChange 回调。

示例代码如下:

// 在子区内发送文本消息 function sendTextMessage() { let option = { // 会话类型,设置为群聊。 chatType: 'groupChat', 
// 消息类型。 type: 'txt', // 消息接收方(子区 ID)。 to: 'chatThreadId', // 消息内容。 msg: 'message content'
 // 是否为子区消息。 isChatThread: 'true', } let msg = WebIM.message.create(option); connection.send(msg).then(()
 => { console.log('send private text Success'); }).catch((e) => { console.log("Send private text error"); }) }; 
 

接收子区消息

可以通过 addEventHandler 注册监听器接收各类消息的回调,详情参考 接收消息。

示例代码如下:

// 监听收到的文本消息 connection.addEventHandler('THREADMESSAGE',{ onTextMessage:(message) => { if
(message.chatThread && JSON.stringify(message.chatThread)!=='{}'){ console.log(message)
 // 接收到子区消息,添加处理逻辑。 } }, }); 
 

撤回子区消息

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

子区成员可以设置消息监听回调 onRecallMessage 对子区消息的撤回进行监听。

示例代码如下:

let option = { // 设置要撤回消息的 ID。 mid: 'msgId', // 设置消息接收方(子区 ID)。 to: 'chatThreadId',
 // 设置会话类型,单聊、群聊和聊天室分别为 `singleChat`、`groupChat` 和 `chatRoom`。 chatType: 'groupChat'
 // 设置是否为子区消息。 isChatThread: 'true' }; connection.recallMessage(option).then((res) =>
 { console.log('success', res) }).catch((error) => { // 消息撤回失败 (超过 2 分钟)。 console.log
('fail', error) }) // 监听要撤回的消息: conn.addEventHandler('MESSAGES',{ onRecallMessage: => (msg) 
{ // 接收到子区消息被撤回,添加处理逻辑。 console.log('撤回成功',msg) }, }) 
 

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

从服务器获取子区消息,请参考 从服务器获取消息。

相似文档
  • 功能描述: SDK 提供消息举报接口支持用户举报违规消息。当服务器端审核服务收到举报消息后,会将举报消息存储到数据库,并提供接口供 Console 后台搜索展示。审核员可以对举报记录进行相应处理。
  • 本文介绍环信即时通讯 IM Web SDK 中接口调用或者回调中的错误码。可以根据具体错误码判断具体错误原因。 你可以在 listen 方法中通过 options 参数注册 onError 回调,然后通过该回调返回的参数,或其他 API 调用失败回调中返回的参数判断出错的原因。示例代码如下: error.type === statusCode.WEBIM_CONNCTION_USER_NOT_ASSIGN_ERROR 其中 error 为回调返回的参数,statusCode 为 SDK 定义的错误信息。
  • 本文介绍如何快速集成环信 IM Windows SDK 实现发送和接收单聊文本消息。 技术原理: 下图展示在客户端发送和接收单聊文本消息的工作流程。 如上图所示,发送和接收单聊消息的步骤如下: 客户端向你的应用服务器请求 Token,你的应用服务器返回 Token。
  • 介绍 Windows SDK 集成相关内容。 前提条件: 开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 环信即时通讯云管理后台 (opens new window)。 集成环境: 具体见 集成环境要求。
  • 版本 v1.1.0 Dev 2023-2-25(开发版)新增特性: 新增 ChatManager#GetConversationsFromServerWithPage 方法实现从服务器分页获取会话列表。 新增 Message#Priority 属性实现聊天室消息优先级功能,确保高优先级消息优先处理。 优化: 调整 SDKClient#InitWithOptions 方法,增加返回结果,检查 App Key 格式。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部