即时通讯
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • Web
  • 小程序
  • Flutter
  • Unity3D
  • uni-app
  • React Native
  • 产品简介
  • 下载
  • 快速开始
    • 跑通示例源码
    • 实现基本消息收发
  • 用户相关
  • 房间相关
  • 群组相关
  • 消息相关
  • 呼叫邀请
  • 会话管理
  • 缓存管理
  • 离线推送
  • 语音组件
  • 客户端 API
  • 服务端 API
  • 迁移方案
  • SDK 错误码
  • 常见问题
  • 文档中心
  • 即时通讯
  • 服务端 API
  • 消息相关
  • MessageBody 说明

MessageBody 说明

更新时间:2024-01-10 16:46

ZIM 服务端支持开发者通过服务端 API 向会话发送不同类型的消息,支持类型如下表所示:

消息类型 MessageType 值 适用会话类型 是否支持全员推送
1
  • 单聊。
  • 群聊。
  • 房间。
✔️
2
11
✔️
12
✔️
13
✔️
14
✔️
200
✔️
20
房间。

开发者在调用 ZIM 服务端接口发送消息时,需要通过参数 MessageBody 传入消息内容。MessageBody 的格式消息类型而不同,本文将介绍各类型消息的对应参数。

文本消息、自定义消息和弹幕消息

MessageBody 结构

文本消息、自定义消息和弹幕消息的 MessageBody 结构相同,说明如下:

参数 类型 是否必选 描述
Message
String
消息内容,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。
ExtendedData
String
扩展字段,长度上限为 1 KB。
OfflinePush
Object
离线推送配置,详情请参考 OfflinePush 说明。
HasReceipt
Number
消息是否附带回执:
  • 0:不是。
  • 1:是。

弹幕消息不支持附带回执。

OfflinePush 说明(房间消息不支持此字段)

参数
类型
是否必选
描述
Enable
Number
是否推送:
  • 0:(默认)否。
  • 1:是。
Title
String
离线推送展示的标题。
Content
String
离线推送展示的内容。
Payload
String
扩展字段,开发者可以自定义收到离线推送消息后的行为。
PushStrategyId
String
自定义推送策略,请联系 ZEGO 技术支持进行配置。

此字段仅适用于 全员推送 接口。

PushImageInfo
Object
图片推送信息。

此字段仅适用于 全员推送 接口。

Apns
Object
苹果推送额外信息。
Image
String
该字段用于标识 APNs 携带的图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上。
Android
Object
安卓推送额外信息。
HuaWei
Object
华为推送通道相关配置。
Image
String
图片文件须小于 512 KB,规格建议为 40dp x 40dp,弧角大小为 8dp。超出建议规格的图片会存在图片压缩或图片显示不全的情况。图片格式建议使用JPG/JPEG/PNG。必须是https协议的链接。
Icon
String
图标文件必须存放在应用的 /res/raw 路径下。例如,“icon” 的值为“res/raw/ic_launcher”,标识您应用本地的小图标路径为“/res/raw/ic_launcher.jpg”。
FCM
Object
谷歌推送通道相关配置。
Image
String
图片地址,大小限制 1M 以内。
Icon
String
图标地址。

MessageBody 示例

{
    "MessageBody": {
        "Message":"hello world",
        "ExtendedData":"extendedData",
        "OfflinePush" :{
            "Enable":0, 
            "Title":"Title",
            "Content":"Content", 
            "Payload":"data"
        },
        "HasReceipt": 1
    }
}

信令消息

MessageBody 结构

参数 类型 是否必选 描述
Message
String
信令消息内容,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。

若消息为经 base64 编码后的内容,则此处的长度限制指的是在 base64 编码前的原消息长度。

ExtendedData
String
扩展字段,长度上限为 1 KB。
IsBase64
Number
是否为 base64 编码后的消息。
  • 0:否(默认)。
  • 1:是。ZIM 服务端收到此消息后,会进行 base64 解码,获取实际消息内容,再发送给 ZIM SDK。

MessageBody 示例

{
    "MessageBody": {
        "Message":"hello world",
        "ExtendedData":"extendedData",
        "IsBase64":0
    }
}

图片消息

MessageBody 结构

参数 类型 是否必选 描述
Message
String
图片消息内容,为按照图片消息的 Message 结构 生成的 JSON 字节串,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。
ExtendedData
String
扩展字段,长度上限为 1 KB。
OfflinePush
Object
离线推送配置,详情请参考 OfflinePush 说明。
HasReceipt
Number
消息是否附带回执:
  • 0:不是。
  • 1:是。

Message 结构

参数 类型 是否必选 描述
Uid
String
图片的唯一 ID。由开发者自行生成。
Origin
Object
原图。
Url
String
图片的 URL 地址,长度上限为 500 字节。
Width
Number
图片宽度,单位为像素(px)。
Height
Number
图片高度,单位为像素(px)。
FileName
String
文件名称,格式建议为 “xxx.文件扩展名”,长度上限为 150 字节。
Size
Number
图片数据大小,单位为字节。

Message 示例

{
    "Uid":"343649807833778782", 
    "Origin": {
        "Url":"https:xxx", 
        "Width":100,
        "Height":200
    },
    "FileName":"FileName.jpg", 
    "Size":1024
}

MessageBody 示例

{
    "MessageBody": {
        "Message":"", // 图片消息内容,为按图片消息的 Message 结构生成的 JSON 字节串
        "ExtendedData":"extendedData",
        "OfflinePush" :{
                "Enable":0, 
                "Title":"Title",
                "Content":"Content", 
                "Payload":"data"
        },
        "HasReceipt": 1
    }
}

文件消息

MessageBody 结构

参数 类型 是否必选 描述
Message
String
文件消息内容,为按照文件消息的 Message 结构 生成的 JSON 字节串,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。
ExtendedData
String
扩展字段,长度上限为 1 KB。
OfflinePush
Object
离线推送配置,详情请参考 OfflinePush 说明。
HasReceipt
Number
消息是否附带回执:
  • 0:不是。
  • 1:是。

Message 结构

参数 类型 是否必选 描述
Uid
String
文件的唯一 ID。由开发者自行生成。
Url
String
文件的 URL 地址,长度上限为 500 字节。
FileName
String
文件名称,格式建议为 “xxx.文件扩展名”,长度上限为 150 字节。
Size
Number
图片数据大小,单位为字节。

Message 示例

{
      "Uid":"343649807833778782", 
      "Url":"https:xxx", 
      "FileName":"FileName.txt", 
      "Size":1024
}

MessageBody 示例

{
    "MessageBody": {
        "Message":"", // 文件消息内容,为按文件消息的 Message 结构生成的 JSON 字节串
        "ExtendedData":"extendedData",
        "OfflinePush" :{
            "Enable":0, 
            "Title":"Title",
            "Content":"Content", 
            "Payload":"data"
        },
        "HasReceipt": 1
    }
}

音频消息

MessageBody 结构

参数 类型 是否必选 描述
Message
String
视频消息内容,为按照音频消息的 Message 结构 生成的 JSON 字节串,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。
ExtendedData
String
扩展字段,长度上限为 1 KB。
OfflinePush
Object
离线推送配置,详情请参考 OfflinePush 说明。
HasReceipt
Number
消息是否附带回执:
  • 0:不是。
  • 1:是。

Message 结构

参数 类型 是否必选 描述
Uid
String
音频的唯一 ID。由开发者自行生成。
Url
String
音频的 URL 地址,长度上限为 500 字节。
FileName
String
音频名称,格式建议为 “xxx.文件扩展名”,长度上限为 150 字节。
Size
Number
音频数据大小,单位为字节。
MediaDuration
Number
音频时长,单位为秒。

Message 示例

{
    "Uid":"343649807833778782", 
    "Url":"https:xxx", 
    "FileName":"FileName.mp3", 
    "Size":1024,
    "MediaDuration":30
}

MessageBody 示例

{
    "MessageBody": {
        "Message":"", // 音频消息内容,为按音频消息的 Message 结构生成的 JSON 字节串
        "ExtendedData":"extendedData",
        "OfflinePush" :{
            "Enable":0, 
            "Title":"Title",
            "Content":"Content", 
            "Payload":"data"
        },
        "HasReceipt": 1
    }
}

视频消息

MessageBody 结构

参数 类型 是否必选 描述
Message
String
视频消息内容,为按照视频消息的 Message 结构 生成的 JSON 字节串,默认为 2 KB。如有需要,请联系 ZEGO 技术支持配置,最大可达 32 KB。
ExtendedData
String
扩展字段,长度上限为 1 KB。
OfflinePush
Object
离线推送配置,详情请参考 OfflinePush 说明。
HasReceipt
Number
消息是否附带回执:
  • 0:不是。
  • 1:是。

Message 结构

参数 类型 是否必选 描述
Uid
String
文件的唯一 ID。由开发者自行生成。
Url
String
视频的 URL 地址,长度上限为 500 字节。
FileName
String
视频名称,格式建议为 “xxx.文件扩展名”,长度上限为 150 字节。
Size
Number
音频数据大小,单位为字节。
MediaDuration
Number
视频时长,单位为秒。
Thumbnail
Object
视频首帧。
Url
String
是(仅当需要视频首帧时)
缩略图的 URL 地址,长度上限为 500 字节。
Width
Number
是(仅当需要视频首帧时)
图片宽度,单位为像素(px)。
Height
Number
是(仅当需要视频首帧时)
图片高度,单位为像素(px)。

Message 示例

{
    "Uid":"343649807833778782", 
    "Url":"https:xxx", 
    "FileName":"FileName.mp4", 
    "Size":1024,
    "MediaDuration":300,
    "Thumbnail": {
        "Url":"https:xxx", 
        "Width":100,
        "Height":200
    }
}

MessageBody 示例

{
    "MessageBody": {
        "Message":"", // 视频消息内容,为按音频消息的 Message 结构生成的 JSON 字节串
        "ExtendedData":"extendedData",
        "OfflinePush" :{
            "Enable":0, 
            "Title":"Title",
            "Content":"Content", 
            "Payload":"data"
        },
        "HasReceipt": 1
    }
}
本篇目录