发送聊天室消息
更新时间: 2025/07/04 15:17:58
本文介绍如何通过 NERoom 服务端接口发送聊天室消息,您可以通过自定义消息实现礼物等功能,或者直接通过该接口发送聊天室文本消息。
流控机制
该接口内部通过 IM 聊天室消息通道下发消息,存在流量控制机制(以下简称 流控机制),即用户在聊天室发送大量消息时,部分消息可能丢失。
为保证用户体验(如避免服务器过载),目前针对消息接收,有以下流控机制。
针对普通消息,聊天室用户每秒至多可接收 20 条,超过部分会因为流控随机丢弃。为避免丢失重要消息(通常为服务端消息),可将下文请求参数中的 high_priority 参数设置为 true,实现高优先级接收服务端消息,进而保证高优先级消息流控上限内的重要消息不丢失。
针对高优先级消息,每秒至多接收 10 条,超过部分可能会丢失。
请求信息
请求 URI
POST https://{endpoint}/neroom/v3/rooms/:room_archive_id/messages
- {endpoint} 为 NERoom 接入地址的域名,默认为
roomkit.yunxinapi.com。如果您的应用主要服务于海外用户,请将域名设置为海外数据中心域名(roomkit-sg.yunxinapi.com)。 - Content-Type:application/json
请求头参数
请求 Header 的设置请参考 请求结构。
请求路径参数
路径参数说明如下:
| 参数名称 | 类型 | 是否必选 | 示例 | 说明 |
|---|---|---|---|---|
| room_archive_id | String | 是 | 4***251 | 创建房间时,NERoom 服务端自动生成的一个用于标识房间的 ID,全局唯一,最大长度 36 个字符。 获取方法请参考 创建房间 中的返回参数。 |
请求体参数
| 参数名称 | 类型 | 是否必选 | 示例 | 说明 |
|---|---|---|---|---|
| message | String | 是 | - | 消息体,最大长度为 500 字符。 |
| sender_user_uuid | String | 是 | user01 | 发送者的 NERoom 账号。 |
| high_priority | Boolean | 否 | false | 是否需要高保障消息, |
| msg_type | Integer | 否 | 100 | 消息类型,默认类型为自定义消息 |
| ext | String | 否 | "{\"k\":\"v\"}" |
消息发送扩展信息,以 JSON 格式传入,如 "{\"k\":\"v\"}"。该字段长度上限以您开通的 IM 套餐 为准,默认上限为 4096 个字符。 |
| antispam | Boolean | 否 | false | 对于开通了安全通(易盾反垃圾)功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom),默认为 false,只对自定义消息(消息类型为 100,"type": 100)生效。 |
| antispam_custom | String | 否 | "{\"type\":1,\"data\":\"custom content\"}" |
自定义的反垃圾检测内容,以 JSON 格式传入,在 antispam 参数为 true 时生效。长度限制同 body 字段,最大长度 5000 位字符。要求 antispamCustom 格式如下:
|
请求示例
cURLcurl --request POST 'https://roomkit.yunxinapi.com/neroom/v3/rooms/123/messages' \
--header 'AppKey: xxx' \
--header 'Nonce: xxx' \
--header 'CurTime: 1677050511' \
--header 'CheckSum: xxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"sender_user_uuid":"user01",
"message": "xxxxxx",
"high_priority":true
}'
响应信息
响应参数
| 参数名称 | 类型 | 示例 | 说明 |
|---|---|---|---|
| code | Integer | 0 | 状态码,0 表示成功,具体请参考 错误码。 |
| msg | String | Success | 业务结果描述,Success 表示成功。 |
| ts | Long | 1648021056815 | NERoom 服务器处理该请求的完成时间。该时间为 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。 |
| request_id | String | 7c4b6d9c3e9d42*****cc6e3a4d995 | 请求的唯一标识。 |
| cost | String | 48ms | 处理该请求所消耗的时间。 |
| data | Object | - | 发送聊天室消息的响应体,响应体结构请参考《即时通讯 IM》服务端 API 发送聊天室消息。 |
响应示例
JSON{
"code": 0,
"msg": "Success",
"ts": 1751560174058,
"cost": "22573ms",
"request_id": "73e4e874d1ee4e5eab57a637153df329",
"data": {
"ext": "{\"customKey\":\"customValue\"}",
"fromNick": "netease-test",
"msgid_client": "840ac3954e3d45eabc27d070c02d1017",
"fromAvator": "https://example.com/MjYxMTI1MDg\u003d/****\u003d",
"fromAccount": "8dd9fc78***52e50f2",
"fromClientType": "REST",
"attach": "Hello, this is a custom message!",
"time": "1751560174030",
"type": "100",
"roomId": "11517563020"
}
}
错误码
| 错误码 | 错误信息 | 说明 | 处理建议 |
|---|---|---|---|
| 0 | Success. | 请求成功 | 无需处理 |
| 400 | Invalid parameter. | 参数错误 | 检查接口传参 |
| 1004 | Room not found. | 房间不存在或者已关闭 | 根据业务场景处理 |
此文档是否对你有帮助?





