发送聊天室消息
更新时间: 2024/11/14 13:43:16
本文介绍如何通过 NERoom 服务端接口发送聊天室消息,您可以通过自定义消息实现礼物等功能,或者直接通过该接口发送聊天室文本消息。
流控机制
该接口内部通过 IM 聊天室消息通道下发消息,存在流量控制机制(以下简称“流控机制”),即用户在聊天室发送大量消息时,部分消息可能丢失。
为保证用户体验(如避免服务器过载),目前针对消息接收,有以下流控机制。
针对普通消息,聊天室用户每秒至多可接收 20 条,超过部分会因为流控随机丢弃。为避免丢失重要消息(通常为服务端消息),可将下文请求参数中的 high_priority
参数设置为 true,实现高优先级接收服务端消息,进而保证高优先级消息流控上限内的重要消息不丢失。
针对高优先级消息,每秒至多接收 10 条,超过部分可能会丢失。
请求
URI
POST https://{endpoint}/neroom/v3/rooms/:room_archive_id/messages
- {endpoint} 为 NERoom 接入地址的域名,默认为
roomkit.netease.im
。如果您的应用主要服务于海外用户,请将域名设置为海外数据中心域名(roomkit-sg.netease.im
)。 - Content-Type:application/json
Header
请求 Header 的设置请参见 请求结构。
路径参数
路径参数说明如下:
参数名称 | 类型 | 是否必选 | 示例 | 描述 |
---|---|---|---|---|
room_archive_id | String | 是 | 4***251 | 创建房间时,NERoom 服务端自动生成的一个用于标识房间的 ID,全局唯一,最大长度 36 个字符。 获取方法请参见 创建房间 中的返回参数。 |
请求体参数
请求 Body 的设置如下:
参数名称 | 类型 | 是否必选 | 示例 | 描述 |
---|---|---|---|---|
message | String | 是 | - | 消息体,最大长度为 500 字符。 |
sender_user_uuid | String | 否 | user01 | 发送者 user_uuid,不设置则使用应用内置的默认账户发送(开通 NERoom 时候会自动创建一个内置用户)。 |
high_priority | boolean | 否 | false | 是否需要高保障消息, |
msg_type | Integer | 否 | 100 | 消息类型, 默认类型为自定义消息 |
请求示例
curl --request POST 'https://roomkit.netease.im/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 | 处理该请求所消耗的时间。 |
响应示例
{
"code":0,
"msg":"Success",
"ts":1619068087795,
"request_id":"6e507107d1f4447ea731f651dc6d2432",
"cost":"66ms"
}
错误码
错误码 | 错误信息 | 说明 | 处理建议 |
---|---|---|---|
0 | Success. | 请求成功 | 无需处理 |
400 | Invalid parameter. | 参数错误 | 检查接口传参 |
1004 | Room not found. | 房间不存在或者已关闭 | 根据业务场景处理 |
此文档是否对你有帮助?