服务端
API 参考
圈组

实现圈组消息收发

更新时间: 2024/03/15 16:12:30

本文介绍在不考虑用户权限控制的场景下,如何通过 IM 服务端 API,快速实现圈组的消息收发。

圈组的用户权限控制通过身份组相关 API 实现。 服务端的身份组相关 API 的介绍请参见身份组管理

前提条件

实现流程

在以下流程中,我们以用户A 和用户B 在圈组的消息交互场景为例。

  • 场景1
uml diagram
  • 场景2
uml diagram

步骤1:用户登录圈组

用户A 和用户 B 调用 qchat/requestAddr.action 请求客户端接入地址,从而登录圈组。

步骤2:用户A 创建服务器

用户A 调用 qchat/createServer.action 创建一个圈组服务器。

步骤3:用户B 加入服务器

用户B 可以通过被用户A 邀请加入服务器(场景1),也可以主动申请加入用户A 创建的服务器(场景2)。

场景1

  1. 用户A 调用 qchat/inviteServerMember.action 邀请用户 B。
  2. 用户B 调用 qchat/acceptServerInvite.action 接受用户A 的邀请,加入用户A 创建的服务器。

创建服务器时,可将 inviteMode(邀请模式)设为“邀请不需要同意”。本流程以 inviteMode设为“邀请需要同意”为例进行介绍。

场景2

  1. 用户B 调用 qchat/applyServer.action申请加入用户A 创建的服务器。
  2. 用户A 调用 qchat/acceptServerApply.action 接受用户B 的申请,用户B 加入服务器。

创建服务器时,可将 applyMode(申请模式)设为“申请不需要同意”。本流程以 applyMode(申请模式)设为“申请需要同意”为例进行介绍。

步骤4: 用户A 创建频道

用户A 调用 qchat/createChannel.action 创建频道。

步骤5: 确保频道对用户B 可见

  • 如上一步中用户A 创建的是私密频道,那么用户A 需调用 qchat/updateWhiteBlackIdentifyUser.action 将用户B 加入频道白名单,否则该频道将对用户B 不可见,从而导致无法实现频道内消息收发。
  • 如用户A 创建的是公开频道,那么请跳过这一步。

圈组的消息收发,只能在频道维度进行。

步骤6: 实现消息收发

用户B 调用 qchat/sendMsg.action 在频道内发送消息。IM 服务端收到用户B 的请求后,将用户B 发送的消息投递至用户A。

圈组支持的消息类型说明见下表。

消息类型 说明
文本消息 消息内容为普通文本。
图片消息 消息内容为图片 URL 地址、尺寸、图片大小等信息。
语音消息 消息内容为语音文件的 URL 地址、时长、大小、格式等信息。
视频消息 消息内容为视频文件的 URL 地址、时长、大小、格式等信息。
文件消息 消息内容为文件的 URL 地址、大小、格式等信息,格式不限。
提示消息 又叫做 Tip 消息,没有推送和通知栏提醒,主要用于圈组内的通知提醒,例如频道内聊天过程中的敏感词被安全通检测到后的提示消息。
地理位置消息 消息内容为地理位置标题、经度、纬度信息。
自定义消息 开发者自定义的消息类型,例如红包消息、石头剪子布等形式的消息。
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现流程
  • 步骤1:用户登录圈组
  • 步骤2:用户A 创建服务器
  • 步骤3:用户B 加入服务器
  • 场景1
  • 场景2
  • 步骤4: 用户A 创建频道
  • 步骤5: 确保频道对用户B 可见
  • 步骤6: 实现消息收发