跳到主要内容

消息介绍

消息基本结构

字段类型描述
conversationTypeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring所属会话的业务标识,长度限制 20 字符,仅在超级群下生效
messageTypeRCIMIWMessageType消息的类型
messageIdnumber本地存储的消息的唯一值(数据库索引唯一值)
messageUIdstring服务器消息唯一 ID(在同一个 Appkey 下全局唯一)
directionRCIMIWMessageDirection消息的方向
receivedTimenumber消息的接收时间(Unix 时间戳、毫秒)
sentTimenumber消息的发送时间(Unix 时间戳、毫秒)
receivedStatusRCIMIWReceivedStatus消息的接收状态
sentStatusRCIMIWSentStatus消息的发送状态
senderUserIdstring消息的发送者 ID
expansion[propName: string]: string消息扩展信息列表,该属性在消息发送时确定,发送之后不能再做修改。
扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息。
默认消息扩展字典 key 长度不超过 32 ,value 长度不超过 4096 ,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300
offLineboolean是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES ,其他情况均为 NO
groupReadReceiptInfoRCIMIWGroupReadReceiptInfo群阅读回执状态
userInfoRCIMIWUserInfo消息携带的用户信息
mentionedInfoRCIMIWMentionedInfo消息的 @ 信息
pushOptionsRCIMIWMessagePushOptions消息推送配置,仅可在发送方进行配置,接收方为空
extrastring消息的附加字段,设置后接收方收到消息后也可以拿到数据。

消息类型

IMLib 的消息类型(RCIMIWMessageType)枚举提供了预定义的文本、语音、图片等消息类型,并且支持 App 通过 RCIMIWMessageType.custom 实现自定义消息。

各类型消息默认会在客户端本地存储,计入未读消息数。以下类型除外:

  • 撤回消息类型(RCIMIWMessageType.recall):客户端本地存储,但不计入未读消息数
  • 命令消息类型(RCIMIWMessageType.command):客户端不进行本地存储,不计入未读消息数
  • 命令通知消息类型(RCIMIWMessageType.commandNotification):客户端本地存储,不计入未读消息数。
  • 自定义消息类型(RCIMIWMessageType.custom):由 App 自定义存储策略(RCIMIWCustomMessagePolicy)进行控制。

文本消息

类型:RCIMIWMessageType.TEXT

可访问属性:

属性名类型
textstring消息内容

构建文本消息

参数说明

参数名类型
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
textstring消息内容

代码示例

engine.createTextMessage(type, targetId, channelId, text)
.then((message: RCIMIWTextMessage) => {});

语音消息

类型:RCIMIWMessageType.VOICE

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
durationnumber语音时长,单位:秒

构建语音消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
pathstring语音消息的本地路径
durationnumber语音消息的消息时长

代码示例

engine.createVoiceMessage(
type,
targetId,
channelId,
path,
duration
)
.then((message: RCIMIWVoiceMessage) => {});

图片消息

类型:RCIMIWMessageType.IMAGE

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
thumbnailBase64Stringstring图片的缩略图数据
originalboolean是否为原图

构建图片消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
pathstring图片消息的本地路径

代码示例

engine.createImageMessage(conversationType, targetId, channelId, path)
.then((message: RCIMIWImageMessage) => {})

文件消息

类型:RCIMIWMessageType.FILE

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
namestring文件名
fileTypestring文件类型
sizenumber文件大小,单位为 Byte

构建文件消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
pathstring文件消息的本地路径

代码示例

engine.createFileMessage(conversationType, targetId, channelId, path)
.then((message: RCIMIWFileMessage) => {})

小视频消息

类型:RCIMIWMessageType.SIGHT

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
durationnumber语音时长,单位:秒
sizenumber视频大小
namestring视频的名称
thumbnailBase64Stringstring缩略图数据

构建小视频消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
pathstring小视频消息的本地路径
durationnumber小视频消息的视频时长

代码示例

engine.createSightMessage(conversationType, targetId, channelId, path, duration)
.then((message: RCIMIWSightMessage) => {})

GIF图消息

类型:RCIMIWMessageType.GIF

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
dataSizenumberGIF 图的大小,单位字节
widthnumberGIF 图的宽
heightnumberGIF 图的高

构建 GIF 消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
pathstringGIF 消息的本地路径

代码示例

engine.createGIFMessage(conversationType, targetId, channelId, path)
.then((message: RCIMIWGIFMessage) => {})

撤回消息

撤回消息不可以主动构建发送,需要撤回消息请调用撤回消息接口

类型:RCIMIWMessageType.RECALL

可访问属性:

属性名类型描述
localstring本地路径
remotestring远端路径
adminboolean是否是管理员操作
deletedboolean是否删除
recallTimenumber被撤回的原始消息的发送时间(毫秒)
recallActionTimenumber撤回动作的时间(毫秒)
originalMessageRCIMIWMessage被撤回的原消息

引用消息

类型:RCIMIWMessageType.REFERENCE

可访问属性:

属性名类型描述
textstring引用文本
referenceMessageRCIMIWMessage被引用的消息

构建引用消息

参数说明

参数名类型描述
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
textstring引用的文本内容
referenceMessageRCIMIWMessage引用的消息

代码示例

engine.createReferenceMessage(conversationType, targetId, channelId, path, text)
.then((message: RCIMIWReferenceMessage) => {})

命令消息

类型:RCIMIWMessageType.COMMAND

可访问属性:

属性名类型描述
namestring命令的名称
datastring命令的扩展数据,可以为任意字符串,如存放您定义的json数据。

命令通知消息

类型:RCIMIWMessageType.COMMAND_NOTIFICATION

可访问属性:

属性名类型描述
namestring命令的名称
datastring命令的扩展数据,可以为任意字符串,如存放您定义的json数据。

自定义消息

类型:RCIMIWMessageType.CUSTOM

可访问属性:

属性名类型描述
identifierstring自定义消息的标识符
policyRCIMIWCustomMessagePolicy自定义的消息存储策略
fields{ [propName: string]: string }自定义消息的键值对

构建自定义消息

参数说明

参数名类型
typeRCIMIWConversationType会话类型
targetIdstring会话 ID
channelIdstring频道 ID,长度限制 20 字符,暂不支持该参数。传 null 即可。
policyRCIMIWCustomMessagePolicy消息的存储策略
messageIdentifierstring消息的标识符,需唯一
fieldsMap<string, string>消息的内容键值对

代码示例

engine.createCustomMessage(
type,
targetId,
channelId,
policy,
messageIdentifier,
fields
)
.then((message: RCIMIWCustomMessage) => {})

无效类型

当接收到无法识别的消息时,会变为无效类型的消息,此消息不可主动构建发送

类型:RCIMIWMessageType.UNKNOWN

可访问属性:

属性名类型描述
rawDatastring消息数据
objectNamestring消息的标识