发送聊天室消息

更新时间: 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 是否需要高保障消息,
  • true:是
  • false(默认):否 建议恰当使用该参数,以便在必要时,优先保障应用内的高优先级消息的投递。若全部设置为高优先级,则等于没有设置,单个聊天室最多支持每秒 10 条高优先级消息,超过的默认转为普通消息
  • msg_type Integer 100 消息类型,默认类型为自定义消息
  • 0:文本消息
  • 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 格式如下:
    • type:表示消息类型,整数格式。取值设置为 1 代表文本,2 代表图片。
    • data:消息的内容,字符串格式。取值设置为文本内容或图片地址。

    请求示例

    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. 房间不存在或者已关闭 根据业务场景处理
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 流控机制
    • 请求信息
    • 请求 URI
    • 请求头参数
    • 请求路径参数
    • 请求体参数
    • 请求示例
    • 响应信息
    • 响应参数
    • 响应示例
    • 错误码