本文介绍AIMSDK支持的消息类型,及其内容属性。

AIMSDK支持文本、图片、视频、语音、地理位置、结构化消息以及自定义消息,除了自定义消息以外均属于标准消息类型,自定义消息开发者可以自定义消息的内容协议(支持2进制数据,内存块)。每种消息都包括共有属性(如已读和未读、消息状态、撤回状态等)和内容属性。

消息类型

类型 定义 内容属性 说明
文本消息 CONTENT_TYPE_TEXT AIMPubMsgTextContent UTF8编码。
图片消息 CONTENT_TYPE_IMAGE AIMMsgImageContent 支持格式:JPG、GIF、PNG、BMP、JPEG、WebP。
语音消息 CONTENT_TYPE_AUDIO AIMMsgAudioContent 支持格式:AMR、OGG、Opus、MP3、WAV。
视频消息 CONTENT_TYPE_VIDEO AIMMsgVideoContent 支持格式:AVI、RMVB、RM、MPG、WMV、MKV、VOB、MP4。
地理位置消息 CONTENT_TYPE_GEO AIMMsgGeoContent 包括位置信息和图片。
结构化消息 CONTENT_TYPE_STRUCT AIMPubMsgStructElementUid 系统消息和@人消息属于结构化消息。
自定义消息 CONTENT_TYPE_CUSTOM AIMMsgCustomContent 开发者自定义内容和子类型。
文件消息 CONTENT_TYPE_FILE AIMMsgFileContent 文件类型消息。
回复消息 CONTENT_TYPE_REPLY AIMPubMsgReplyContent 消息回复,不可回复合并转发消息。
合并转发消息 CONTENT_TYPE_COMBINE_FORWARD AIMPubMsgCombineForwardContent 不支持合并转发消息内包含合并转发的消息。

消息共有属性

属性 类型 描述
appCid String 会话唯一标识。
mid String 消息服务端唯一标识,消息发送成功前为空。
说明 mid作为消息服务端唯一标识,所有端唯一,重装后不变,在消息发送中、发送失败、本地消息都是为空。
localid String 消息本地唯一标识,不为空。
说明 localid作为消息的本地唯一标识是本地唯一,不同设备不唯一,且一次安装不变。
sender String 发送者uid。
receivers List 接收者数组,空表示发给会话中的所有人。
is_read Bool 是否自己已读。
extension Map 业务扩展信息(共有),所有接收人一样。
local_extension Map 业务本地扩展信息。
user_extension Map 业务扩展信息(个人),接收人可能不一样。
content AIMPubMsgContent 消息内容。
status AIMMsgSendStatus 消息状态。
  • 发送成功。
  • 发送中。
  • 发送失败。
is_delete Bool 是否删除。
is_recall Bool 是否撤回。
is_disable_read Bool 是否不能发送已读,已读降级的场景使用。
is_local Bool 是否是本地消息。发送中、发送失败、本地系统消息都属于本地消息,本地消息没有mid。
biz_info AIMMsgBizInfo 搜索用信息。
display_style AIMMsgDisplayStyle 消息展示类型。
  • 用户消息。
  • 系统消息。
recall_feature AIMPubMsgRecallFeature 消息撤回信息。

撤回内容

属性 类型 描述
operator_type AIMMsgRecallType 撤回类型。
  • 0:发送者撤回。
  • 1:群主撤回。
  • 2:系统撤回。
  • 3:安全撤回。
  • 101:业务方自定义撤回。可通过AIMMsgRecallFeature.extension配合使用。
code String 业务码。
operator_uid String 操作者appUID。
extension Map 撤回扩展字段。

内容属性

  • 文本消息
    表 1. AIMPubMsgTextContent
    属性 类型 描述
    text String 内容(UTF8编码)。
  • 图片消息
    表 2. AIMMsgImageContent
    属性 类型 描述
    local_path String 本地路径,发送方必填。
    upload_path String 上传本地路径,发送方选填。
    mime_type String 标准的MIME, 支持的类型参见多媒体接入说明。
    original_url String 原始尺寸图片下载URL,两次取值可能不同,但代表同一个图片。
    thumbnail_url String 缩略图尺寸图片下载URL,两次取值可能不同,但代表同一个图片。
    blurred_data Binary 模糊图二进制数据,不保证一定有数据(弱网优化)。
    media_id String 统一的多媒体资源标识符,唯一且不变。
    file_name String 文件名。
    height Integer 高。单位:像素。
    width Integer 宽。单位:像素。
    type AIMMsgImageType 压缩类型。
    file_type AIMMsgImageFileType 文件类型。
    orientation AIMMsgOrientation 旋转类型。
    extension Map 扩展消息,内容开发者自定义(key:String,value:String)。
  • 语音消息
    表 3. AIMMsgAudioContent
    属性 类型 描述
    local_path String 语音本地路径(发送方)。填写本地原始语音数据路径。
    upload_path String 上传本地路径。发送方选填。
    mime_type String 标准的MIME, 支持的类型参见多媒体接入说明。
    url String 语音文件URL。服务端上传成功后返回,两次取值可能不同。
    binary_data Binary 模糊语音二进制数据,不保证一定有数据(弱网优化)。
    media_id String 统一的多媒体资源标识符,唯一且不变。
    audio_type AIMMsgAudioType 语音类型。
    duration Long 时长。
  • 视频消息
    表 4. AIMMsgVideoContent
    属性 类型 描述
    local_path String 视频本地路径(发送方)。
    upload_path String 上传本地路径,发送方选填。
    mime_type String 标准的MIME, 支持的类型参见多媒体接入说明。
    url String 原始下载URL,两次取值可能不同。
    media_id String 统一的多媒体资源标识符,唯一且不变。
    conver_local_path String 封面图片本地路径(发送方)。
    conver_upload_path String 封面图片上传路径(发送方)。
    conver_url String 原始下载URL,两次取值可能不同。
    conver_media_id String 统一的多媒体资源标识符,唯一且不变。
    conver_file_type AIMMsgImageFileType 封面文件类型(发送方)。
    conver_mime_type String 标准的MIME, 支持的类型参见多媒体接入说明。
    file_name String 视频名字。
    duration Long 时长。
    width Integer 宽。单位:像素。
    height Integer 高。单位:像素。
    conver_width Integer 封面宽。单位:像素。
    conver_height Integer 封面高。单位:像素。
  • 地理位置消息
    表 5. AIMMsgGeoContent
    属性 类型 描述
    pic_local_path String 图片本地路径。
    pic_upload_path String 图片上传路径。
    mime_type String 标准的MIME, 支持的类型参见多媒体接入说明。
    pic_url String 原始下载URL,两次取值可能不同,但代表同一个图片。
    media_id String 统一的多媒体资源标识符,唯一且不变。
    pic_file_type AIMMsgImageFileType 文件类型。
    width Integer 宽。单位:像素。
    height Integer 高。单位:像素。
    pic_width Integer 图片宽。单位:像素。
    pic_height Integer 图片高。单位:像素。
    latitude double 纬度。
    Longitude double 经度。
    location_name String 地理位置名称。
  • 结构化消息

    结构化消息,包括系统消息和@用户消息。每个消息包括元素链表,每个元素目前有两中类型,文本context类型和uid类型,uid类型包含了用户ID信息,开发者需要替换用户ID为真实的姓名。

    • 系统消息系统消息结构
    • @用户消息@用户消息
    表 6. AIMPubMsgStructElementUid
    属性 类型 描述
    uid String 用户id。
    default_nick String 默认昵称。
    prefix String 前缀。
    表 7. AIMPubMsgStructElementAt
    属性 类型 描述
    is_at_all Bool 是否是AtAll。
    default_nick String 默认昵称。
    uid String 用户id。
    表 8. AIMPubMsgStructElement
    属性 类型 描述
    element_type AIMMsgStructElementType 元素类型(包括文本节点、uid节点)。
    text_content AIMMsgTextContent 文本内容。
    uid_element AIMMsgStructElementUid uid内容。
    at_element AIMMsgStructElementAt at内容。
    表 9. AIMMsgStructContent
    属性 类型 描述
    elements List 元素列表(AIMMsgStructElement)。
  • 自定义消息
    表 10. AIMMsgCustomContent
    属性 类型 描述
    type Integer 类型。由用户自定义,这里AIMSDK不做具体的类型定义。
    Binary_data Binary 二进制数据,由用户自定义payload。
  • 文件消息
    表 11. AIMMsgFileContent
    属性 类型 描述
    local_path Integer 类型。由用户自定义,这里AIMSDK不做具体的类型定义。
    file_name Binary 二进制数据,由用户自定义payload。
    file_type String 文件类型。
    media_id String 统一的多媒体资源标识符,唯一且不变。
    mime_type String 标准的MIME。支持的类型参见多媒体接入说明。
    url String 原始下载URL。两次取值可能不同。
    file_size Integer 文件大小。单位:字节。
  • 回复消息
    表 12. AIMPubMsgReplyContent
    属性 类型 描述
    reference_msg AIMPubMsgReference 被引用的消息内容。
    reply_content AIMPubMsgInnerReplyContent 回复的消息的内容。
    表 13. AIMPubMsgReference
    属性 类型 描述
    sender String 发送者uid。
    appCid String 会话唯一标识。
    mid String 消息服务端唯一标识。
    created_at Integer 消息创建时间。
    reference_content AIMPubMsgReferenceContent 被引用消息内容。
    extension Map 扩展消息,内容开发者自定义(key:String,value:String)。
    表 14. AIMPubMsgReferenceContent
    属性 类型 描述
    content_type AIMMsgContentType 消息类型。
    content AIMPubMsgSimpleContent 消息体内容。
    表 15. AIMPubMsgSimpleContent
    属性 类型 描述
    text_content AIMPubMsgTextContent 文本消息内容。
    image_content AIMMsgImageContent 图片消息内容。
    audio_content AIMMsgAudioContent 音频消息内容。
    video_content AIMMsgVideoContent 视频消息内容。
    geo_content AIMMsgGeoContent 地理位置消息内容。
    custom_content AIMMsgCustomContent 自定义消息内容。
    struct_content AIMPubMsgStructContent 结构化消息内容。
    file_content AIMMsgFileContent 文件消息内容。
    表 16. AIMPubMsgInnerReplyContent
    属性 类型 描述
    content_type AIMMsgContentType 消息类型。
    content AIMPubMsgSimpleContent 标准消息体,可根据content_type找到对应的消息体。
  • 合并转发消息
    表 17. AIMPubMsgCombineForwardContent
    属性 类型 描述
    combine_forward AIMPubMsgCombineForward 合并转发的消息集合。
    表 18. AIMPubMsgCombineForward
    属性 类型 描述
    sender String 发送者uid。
    appCid String 会话唯一标识。
    mid String 消息服务端唯一标识。
    created_at Integer 消息创建时间。
    combine_content AIMPubMsgInnerCombineContent 被转发消息的消息体。
    extension Map 扩展消息,内容开发者自定义(key:String,value:String)。
    表 19. AIMPubMsgInnerCombineContent
    属性 类型 描述
    content_type AIMMsgContentType 消息类型。
    simple_content AIMPubMsgSimpleContent 标准消息体,可根据content_type找到对应的消息体。
    reply_content AIMPubMsgReplyContent 回复消息,仅当content_type为CONTENT_TYPE_REPLY时使用。