本文介绍直播互动的AIM消息发送、消息撤回、消息已读功能。

消息发送

  • 支持单聊和群聊。
  • 支持文本、图片、语音、视频、文件、地理位置、引用回复、@消息等丰富的AIM原生消息类型,也可以自定义消息类型。支持的消息类型,请参见消息类型
  • 支持消息扩展能力,可以使用扩展字段来附带业务自定义的字段,实现个性化的业务需求。
AIMServer开放的接口,还支持额外的选项:
  • 支持发消息不累加红点数,默认的行为红点数加1。可通过SendMessage接口的RedPointPolicy参数实现。
  • 指定用户接收,可通过该特性实现单边消息,支持指定接收者接收消息,即仅部分用户可收到该条消息。对单聊来说是单边消息,对群聊来说部分群成员才能看到该条消息。可通过SendMessage接口的ReceiveScopeOption参数实现。
表 1. 消息类型
类型 描述
文本 普通文本。
图片 支持原图、缩略图、模糊图,包含图片尺寸和大小等信息。
语音 包含语音时长信息。
短视频 包含封面图片,视频时长信息。
文件 文件消息。
地理位置 包含封面图片,坐标信息。
引用回复 对于某条消息的回复。
合并转发 对于某个会话的N条消息合并成一条消息发送。
@消息 群@某个人的消息。
自定义 业务可自由定义的消息。

消息撤回

支持由客户端和服务端发起消息撤回。

  • 客户端发起的撤回:允许发送者发起,对群聊来说群主和管理员都可撤回,仅支持非静默撤回,默认可撤回24小时内的消息,可通过控制台修改配置。
  • 服务端发起的撤回:不校验操作者身份,支持更多的撤回定制化能力,支持静默撤回和非静默撤回。
静默撤回与非静默撤回的区别:
  • 非静默撤回:客户端可拉取到被撤回的消息,消息内容是空的。
  • 静默撤回:客户端不能拉取到被撤回的消息,就好像这条消息没发送过。

消息已读

当有用户A在客户端的消息页面看了其他人发的消息,会调用已读接口,AIMServer收到后会把已读事件实时同步给消息发送者,发送者在消息页面可以看到该条消息被用户A阅读,发送者也可以查看这条消息被哪些人已读。

说明 500人以上的群不支持消息已读。

回调和事件

客户端发出消息AIMServer都会回调AppServer,AppServer可以决定这条消息是否允许发送,比如说关系校验、安全校验,如果允许发送,可以修改接收者。

AppServer可订阅消息发送事件,订阅该事件触发某些业务,常见的有消息机器人、新老系统互通、异步垃圾消息检测等。

更多信息,请参见回调说明事件说明