IM 即时通讯
服务端
服务端集成新手指南
接口及业务限制
更新日志
平台服务
第三方回调
第三方回调概述
消息相关回调
用户信息相关回调
高级群相关回调
超大群相关回调
聊天室相关回调
音视频1.0相关回调
登录相关回调
圈组相关回调
消息抄送
消息抄送服务概述
开通消息抄送
IM会话相关抄送
IM 会话已读数据抄送
IM其他抄送
圈组相关抄送
音视频和白板相关抄送
安全通
安全通概述
开通 IM 安全通
最佳实践
聊天室重要消息投递
IM 平滑迁移方案
API 参考
API调用方式
状态码
云信 IM 账号管理
注册云信IM账号
刷新Token
封禁账号
账号全局禁言
设置移动端是否需要推送(桌面端在线时)
登录鉴权
消息功能
发送消息
发送单聊已读回执
发送群聊已读回执
消息撤回
发送广播消息
文件上传
删除单条消息
删除漫游消息
历史消息与记录
云端历史消息查询
广播消息查询
IM 登录/登出记录查询
自定义系统通知
用户名片
用户关系管理
好友关系管理
黑名单/静音管理
群组
高级群
创建高级群
拉人入群
发送群消息
添加管理员
移除管理员
转让群主
禁言群组
禁言指定群成员
踢人出群
主动退群
修改群昵称
修改群组信息
设置群消息提醒开关
解散群组
获取群组详细信息
获取群组禁言列表
获取群消息已读未读详情
获取用户已加入的群组信息
获取用户已加入的群组的所有群成员信息
获取群组的在线成员列表
批量获取群组信息与成员列表
批量获取群组的在线成员数量
超大群
创建超大群
拉人入群
发送超大群消息
发送超大群自定义系统通知
撤回超大群消息
添加管理员
移除管理员
转让群主
禁言超大群
禁言指定超大群成员
踢人出群
主动退群
修改超大群昵称
修改超大群信息
修改超大群成员信息
解散超大群
修改超大群人数级别
获取超大群信息
获取超大群成员信息
获取超大群禁言成员信息
获取已加入的超大群信息
查询超大群云端历史消息
聊天室
创建聊天室
获取聊天室地址
更新聊天室信息
查询聊天室信息
开放/关闭聊天室
查询开放状态的聊天室
设置聊天室定时关闭
开启/关闭进出聊天室事件通知
管理聊天室用户角色
获取聊天室成员列表
聊天室消息管理
发送聊天室消息
批量发送聊天室消息
撤回聊天室消息
发送聊天室定向消息
批量发送聊天室定向消息
发送聊天室全服广播消息
管理聊天室机器人
聊天室禁言
聊天室标签
管理聊天室队列
管理聊天室队列元素
圈组
获取圈组连接地址
服务器相关
创建服务器
修改服务器信息
删除服务器
批量查询服务器信息
分页查询服务器列表
服务器成员相关
邀请服务器成员
接受邀请
拒绝邀请
申请加入服务器
接受申请
拒绝申请
生成邀请码
通过邀请码加入
踢出成员
主动退出服务器
修改自己的成员信息
修改他人的成员信息
分页查询服务器成员列表
批量查询服务器成员信息
查询服务器的申请和邀请记录
查询个人的申请和邀请记录
更新成员封禁状态
分页查询封禁成员列表
频道相关
创建频道
修改频道基础信息
修改频道分组相关信息
删除频道
分页查询频道列表
批量查询频道信息
分页查询频道成员列表
修改频道黑白名单成员
修改频道黑白名单身份组
分页查询频道黑白名单成员列表
分页查询频道黑白名单身份组列表
批量查询频道黑白名单成员
批量查询频道黑白名单身份组
频道分组相关
身份组相关
服务器身份组
身份组成员管理
频道身份组
频道用户定制权限
频道分组身份组
频道分组用户定制权限
身份组自定义权限项
查询用户拥有的权限
圈组消息相关
发送消息
更新消息
查询云端历史消息
查询 Thread 聊天历史
批量查询Thread聊天meta 信息
更新快捷评论
查询快捷评论
查询@某人的未读消息
系统通知相关
圈组系统通知概述
发送自定义系统通知
更新自定义系统通知
搜索结果自定义排序
修改服务器自定义排序值
修改频道自定义排序值
在线状态订阅
文本翻译
推送payload配置

发送聊天室消息

更新时间: 2023/01/18 15:33:56

网易云信 IM 服务端支持发送聊天室消息,消息类型包括消息类型包括文本消息、图片消息、语音消息、视频消息、地理位置消息、文件消息、提示消息和自定义消息。

聊天室流控机制

聊天室存在流量控制机制(以下简称“流控机制”),即用户在聊天室发送大量消息时,部分消息可能丢失。

为保证用户体验(如避免服务器过载),目前针对消息接收,有以下流控机制。

  • 针对普通消息,聊天室用户每秒至多可接收 20 条,超过部分会因为流控随机丢弃。为避免丢失重要消息(通常为服务端消息),可将下文请求参数中的 highPriority 参数设置为 true,实现高优先级接收服务端消息,进而保证高优先级消息流控上限内的重要消息不丢失。
  • 针对高优先级消息,每秒至多接收 10 条,超过部分可能会丢失。

功能描述

用户可在聊天室中发送聊天室消息,支持发送文本消息,图片消息,语音消息,地址位置消息等多种消息类型。

重发消息与发送消息都可通过本 API 实现,通过设置resendFlag进行区分。详情请参见下文请求参数中该参数的说明。

URL

POST https://api.netease.im/nimserver/chatroom/sendMsg.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8

请求参数

  • POST 请求中 Headers 的设置请参考API 调用方式

  • POST 请求中 Body 的设置如下:

参数类型必填说明
roomid Long聊天室 ID
msgId String 消息 ID,使用 uuid 等随机串,msgId 相同的消息会被客户端去重
attach String 消息内容,格式同消息格式示例中的 body 字段,最大长度 4096 位字符
fromAccid String 发送消息的用户账号,accid
msgType Integer 消息类型:
0: 文本消息,1: 图片,2: 语音,3: 视频,4: 地理位置信息,6: 文件,10: 提示消息(Tips),100: 自定义消息对于未对接易盾反垃圾功能的应用,自定义消息类型的消息不会提交反垃圾系统检测
subType Integer自定义消息子类型,大于 0
resendFlag Integer 重发消息标记
0:非重发消息,1:重发消息,如重发消息会按照 msgId 检查去重逻辑
ext String 消息扩展字段,内容可自定义,JSON 格式,最大长度 4096 位字符
route Integer消息是否需要抄送
0:不需要;1:需要(默认)
skipHistory Integer是否存储云端历史消息
0:存储云端历史消息(默认);1:不存储
abandonRatioInteger消息丢弃的概率,取值范围 [0-9999];
0:不丢弃消息(默认),9999:99.99%的概率丢弃消息
此参数可用于流控特定业务类型的消息如果填写此参数,下面的 highPriority 参数将无效
highPriority Boolean true:高优先级消息,云信会优先保障投递此类消息;false:低优先级消息(默认)
高优先级消息可以设置进入后重发,具体参见 needHighPriorityMsgResend 参数建议恰当使用该参数,以便在必要时,优先保障应用内的高优先级消息的投递。若全部设置为高优先级,则等于没有设置,单个聊天室最多支持每秒 10 条高优先级消息,超过的默认转为普通消息
needHighPriorityMsgResend Boolean true:会重发消息(默认),false:不会重发消息若设置为true,当用户离开聊天室之后重新加入聊天室,在有效期内还会收到发送的此条消息,目前有效期默认 30s。在未配置 highPriority时,needHighPriorityMsgResend 不生效
useYidun Integer单条消息(包括自定义消息)是否使用安全通(即易盾反垃圾),只能传 0,传其他值相当于不传
0:(在开通安全通的情况下)不使用安全通
若不填此字段,即在默认情况下,若应用开通了安全通,则使用安全通来进行垃圾消息的判断
yidunAntiCheating String 透传给易盾的反作弊检测参数,JSON,最大长度 1024 位字符,(具体请参见易盾的反垃圾防刷版专属字段
yidunAntiSpamExt String 透传给易盾的反垃圾增强版的检测参数,JSON,最大长度 1024 位字符(具体请参见易盾的反垃圾增强版用户可扩展字段
bid String 安全通的自定义反垃圾(即内容审核)业务的 ID。自定义反垃圾业务主要用来针对单条消息进行除了默认反垃圾业务以外的内容审核。如需配置自定义反垃圾,请通过云信官网首页提供的微信、在线聊天和电话等方式联系商务经理进行配置,并获取对应的业务 ID
antispam Boolean 对于开通了安全通(易盾反垃圾)功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom),默认 false
只对自定义消息(消息类型:100)生效
notifyTargetTags String 目标标签表达式,用于设定聊天室消息的投递对象,最大长度 128 位字符。具体使用说明和示例请参见标签表达式
antispamCustom String自定义的反垃圾检测内容,在 antispam 参数为 true 时生效,JSON,长度限制同 body 字段,最大长度 5000 位字符,要求 antispamCustom 格式如下:
{"type":1,"data":"custom content"}
字段说明:
1. type: 1:文本,2:图片,3:视频
2. data: 文本内容或图片地址
env String 消息需要抄送到的环境的名称,对应您在云信控制台中配置的自定义抄送的环境名称(如下图),最大 32 个字符

自定义抄送环境.png

chatMsgPriority Integer走 CDN通道的消息的优先级,可选值:0(默认),1,2,3
forbiddenIfHighPriorityMsgFreq Integer高优先级消息被频控后是降级为普通消息还是返回 403 错误码
0:降级为普通消息(默认),1:返回 403 错误码
locX Double 空间坐标x,用于在部分基于空间坐标的场景下给指定范围内的用户发送空间消息,该功能对客户端SDK有版本要求(8.11.0及以上)
locY Double 空间坐标y,用于在部分基于空间坐标的场景下给指定范围内的用户发送空间消息,该功能对客户端SDK有版本要求(8.11.0及以上)
locZ Double 空间坐标z,用于在部分基于空间坐标的场景下给指定范围内的用户发送空间消息,该功能对客户端SDK有版本要求(8.11.0及以上)

返回参数

参数类型说明
code Integer状态码
desc String发送的消息体的详细信息

desc 中的参数说明

参数类型说明
time Long发送消息的时间戳,毫秒级
fromAvatorString发送消息用户的头像
msgid_clientLong客户端的消息 ID
fromClientTypeString发送消息用户的客户端类型
roomId Long聊天室 ID
fromAccount String 发送消息的用户账号,accid
fromNick String 发送消息的用户昵称
attach String消息内容
type Integer 消息类型
ext String扩展字段
highPriorityFlag Integer高优先级消息标记,不带此标记表示非高优先级
msgAbandonFlagInteger消息被丢弃标记,传 abandonRatio 参数时才会返回此标记,不返回此标记代表未被丢弃

示例

请求示例(curl)

curl -X POST -H "CheckSum: 51eb13ea***1c65c7866c366" -H "AppKey: f541664***6ad7799" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=36&fromAccid=zhangsan&msgType=0&attach=This+is+test+msg&msgId=c9e6c306-804f-4ec3-b8f0-573778829419' 'https://api.netease.im/nimserver/chatroom/sendMsg.action'

请求成功返回示例

"Content-Type": "application/json; charset=utf-8"
{
"code":200,
"desc":{
  "time": "1456396333115",
  "fromAvator":"http://b12026.nos.netease.com/MTAxMTAxMA==/bmltYV84NDU4OF8xNDU1ODczMjA2NzUwX2QzNjkxMjI2LWY2NmQtNDQ3Ni0E2LTg4NGE4MDNmOGIwMQ==",
  "msgid_client": "c9e6c306-804f-4ec3-b8f0-573778829419",
  "fromClientType": "REST",
  "attach": "This+is+test+msg",
  "roomId": "36",
  "fromAccount": "zhangsan",
  "fromNick": "张三",
  "type": "0",
  "ext": "",
  "highPriorityFlag":1, //高优先级消息标记,不带此标记表示非高优先级
  "msgAbandonFlag":"1" //消息被丢弃标记,传abandonRatio参数时才会返回此标记,不返回此标记代表未被丢弃
}
}

请求失败返回示例

"Content-Type": "application/json; charset=utf-8"
{
    "code":414
    "desc":"msgContents size exceed" //消息内容大小超出限制
}

状态码

该接口在 HTTPS Body 中返回请求的状态码,以下仅列出与接口业务相关的状态码。完整状态码请参见状态码

状态码 说明 处理建议
200 请求成功 -
414 参数错误 根据提示信息,检查传入参数的格式和限制条件
403 禁止操作 聊天室名称等违规,未过审核或者未开启聊天室权限
416 频控限制,访问频率过高 降低访问频率
419 聊天室数量超出 -
500 服务出错 -
13009 未开启聊天室定时关闭功能 建议开启聊天室定时关闭功能
此文档是否对你有帮助?
有帮助
我要吐槽
  • 聊天室流控机制
  • 功能描述
  • URL
  • 请求参数
  • 返回参数
  • 示例
  • 请求示例(curl)
  • 请求成功返回示例
  • 请求失败返回示例
  • 状态码