聊天室消息构建
更新时间: 2025/09/03 10:41:41
网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)支持多种消息类型,助您快速实现多样化的消息业务场景。在进行消息收发等操作前,您需要先构建消息。
本文中消息指聊天室消息。更多聊天室消息相关功能请参考开发文档 聊天室消息。
API 概览
| API | 说明 | 起始版本 |
|---|---|---|
| createTextMessage | 创建一条文本消息 | v10.5.0 |
| createImageMessage | 创建一条图片消息 | v10.5.0 |
| createAudioMessage | 创建一条语音消息 | v10.5.0 |
| createVideoMessage | 创建一条视频消息 | v10.5.0 |
| createFileMessage | 创建一条文件消息 | v10.5.0 |
| createLocationMessage | 创建一条地理位置消息 | v10.5.0 |
| createCustomMessage | 创建一条自定义消息 | v10.5.0 |
| createForwardMessage | 创建一条转发消息 | v10.5.0 |
| createTipsMessage | 创建一条提示消息 | v10.5.0 |
接口类
V2NIMChatroomMessageCreator 类提供聊天室消息构建接口,支持构建多种类型的聊天室消息。
createTextMessage
接口描述
创建一条文本消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createTextMessage(String text)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
text |
String | 是 | 文本消息内容,长度上限为 5000 字符。 |
示例代码
dartfinal message = (await V2NIMChatroomMessageCreator.createTextMessage(
'test text chatroom message'))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createImageMessage
接口描述
创建一条图片消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createImageMessage(
String imagePath,
{String? name,
String? sceneName,
required int width,
required int height})
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
imagePath |
String | 是 | 图片文件地址。 |
name |
String | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
int | 是 | 图片宽度,单位为像素。 |
height |
int | 是 | 图片高度,单位为像素。 |
示例代码
dart final message = (await V2NIMChatroomMessageCreator.createImageMessage(
imagePath,
width: 50,
height: 100))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createAudioMessage
接口描述
创建一条语音消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createAudioMessage(
String audioPath,
{String? name,
String? sceneName,
required int duration})
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
audioPath |
String | 是 | 语音文件地址。 |
name |
String | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | 语音文件时长,单位为毫秒。 |
示例代码
dart final message = (await V2NIMChatroomMessageCreator.createAudioMessage(
audioPath,
duration: 6000))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createVideoMessage
接口描述
创建一条视频消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createVideoMessage(
String videoPath,
{String? name,
String? sceneName,
required int duration,
required int width,
required int height})
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
videoPath |
String | 是 | 视频文件地址。 |
name |
String | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | 视频文件时长,单位为毫秒。 |
width |
int | 是 | 视频宽度,单位为像素。 |
height |
int | 是 | 视频高度,单位为像素。 |
示例代码
dartfinal message = (await V2NIMChatroomMessageCreator.createVideoMessage(
videoPath,
duration: 70000,
width: 102,
height: 150))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createFileMessage
接口描述
创建一条文件消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createFileMessage(
String filePath,
{String? name,
String? sceneName})
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
filePath |
String | 是 | 文件地址。 |
name |
String | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
示例代码
dartfinal message = (await V2NIMChatroomMessageCreator.createFileMessage(
filePath,
))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createLocationMessage
接口描述
创建一条地理位置消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createLocationMessage(
double latitude,
double longitude,
String? address)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
latitude |
double | 是 | 位置维度。 |
longitude |
double | 是 | 位置经度。 |
address |
String | 是 | 位置描述信息。 |
示例代码
dart final message = (await V2NIMChatroomMessageCreator.createLocationMessage(
latitude,longitude,null
))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createCustomMessage
接口描述
创建一条自定义消息。
- 已注册一个自定义消息解析器。请参考 自定义消息收发。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createCustomMessage(String rawAttachment)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
rawAttachment |
String | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度限制与各套餐的配置(消息 attach 字段大小上限)有关,具体请参考 字段限制说明。 |
示例代码
dartfinal message = (await V2NIMChatroomMessageCreator.createCustomMessage(
jsonString
))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createForwardMessage
接口描述
创建一条转发消息。
- 转发的消息类型 不能为
notification、robot、tip,avChat。 - 转发的消息消息必须为发送成功的消息,消息状态必须为
NIMMessagesendingState.succeeded,消息内容与原消息相同。 - 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createForwardMessage(V2NIMChatroomMessage message)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
message |
V2NIMChatroomMessage |
是 | 待转发的消息体。 |
示例代码
dartfinal message = (await V2NIMChatroomMessageCreator.createForwardMessage(
msg
))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
createTipsMessage
接口描述
创建一条提示消息。
- 在加入聊天室后、发送消息前调用该方法。
- 该方法为同步。
参数说明
dartFuture<NIMResult<V2NIMChatroomMessage>> createTipsMessage(String text)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
text |
String | 是 | 提示消息内容。 |
示例代码
dart final message = (await V2NIMChatroomMessageCreator.createTipsMessage(
'tips msg'
))
.data;
返回值
已创建的消息对象 V2NIMChatroomMessage
此文档是否对你有帮助?





