发送聊天室自定义消息

更新时间: 2023/11/03 02:40: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 的设置请参见 请求结构

路径参数

路径参数说明如下:

参数名称 类型 是否必选 示例 描述
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 是否需要高保障消息,
  • true:是。
  • false(默认):否。建议恰当使用该参数,以便在必要时,优先保障应用内的高优先级消息的投递。若全部设置为高优先级,则等于没有设置,单个聊天室最多支持每秒 10 条高优先级消息,超过的默认转为普通消息
  • 请求示例

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