消息概述
更新时间: 2024/05/15 13:54:17
消息一般指会话内消息,只能出现并展示在聊天界面里,一般是应用内的一个用户发给另一个用户(或群组/聊天室)的消息,例如文本消息、图片消息都属于会话内消息。
消息类型
目前 NIM SDK 内置支持的会话内消息包括以下类型:
会话内消息类型 |
API关键字 |
说明 | 使用限制 |
---|---|---|---|
文本消息 | text |
消息内容为普通文本 | 长度上限 5,000 字符 |
图片消息 | image |
消息内容为图片 URL 地址、尺寸、图片大小等信息 | - |
语音消息 | audio |
消息内容为语音文件的 URL 地址、时长、大小、格式等信息 | 文件大小无限制,建议应用根据业务场景进行限制 |
视频消息 | video |
消息内容为视频文件的 URL 地址、时长、大小、格式等信息 | 上传无视频时长和文件大小限制,建议应用根据业务场景进行限制 |
文件消息 | file |
消息内容为文件的 URL 地址、大小、格式等信息 | 格式不限,SDK 上传无大小限制,服务端上传文件最大 15 MB,建议应用根据业务场景进行限制 |
地理位置消息 | location |
消息内容为地理位置标题、经度、纬度信息 | - |
提示消息 | tip |
又叫做 Tip 消息,没有推送和通知栏提醒,主要用于会话内的通知提醒,例如进入会话时出现的欢迎消息,或是会话过程中命中敏感词后的提示消息等场景 | - |
通知消息 | notification |
主要用于群组、聊天室和超大群的事件通知,由服务端下发,客户端无法发送事件通知消息。 通知类消息有在线、离线、漫游机制;没有通知栏提醒 | - |
自定义消息 | custom |
开发者自定义的消息类型,例如红包消息、石头剪刀布等形式的消息 | - |
消息功能
除了支持丰富的消息类型外,NIM SDK还为开发者提供了常见消息功能的支持。
消息功能 |
说明 |
---|---|
离线消息 | 不在线时其他人发来的消息。在下次登录时,会自动将离线期间暂存的离线消息自动下发到 客户端SDK。 点对点场景下发 最近 30 天内的最新的 5000 条离线消息,且每个会话最多 100 条最新的离线消息;群聊场景会话下发最近30天内的离线消息,且每个群聊会话最多下发 100 条最新的离线消息。 |
漫游消息 | 在切换设备(或卸载重装)登录时,可读取其他设备最近已接收过的消息,服务器记录的漫游消息将自动同步到客户端 SDK。 至多漫游 90 天内,最近 100 个会话的最近的 100 条消息(支持配置)。消息漫游默认关闭,需要在控制台单独开通。开通漫游功能之前发送的消息无法漫游。 |
多端同步 | 同账号多客户端同时在线时,其中一端发出的消息实时下发到其他端。 |
历史消息 | 支持本地历史消息和云端历史消息。 根据版本的不同可获取到最近的云端历史消息,支持扩展时间至应用服务有效期内。 |
消息撤回 | 撤回投递成功的消息,默认撤回 2 分钟内的消息,可撤回的时长可在用户控制台进行配置。撤回操作仅支持单聊和群聊消息,不支持聊天室消息的撤回。 |
已读回执 | 查看点对点或群聊会话中对方的消息已读未读状态。 |
消息转发 | 将消息转发给其他用户或群组。 |
@某人 | 通过消息扩展字段实现。当发送群消息@某人的时候,可以通过扩展字段带上被@的帐号列表发送出去;群成员收到群消息时,查看扩展字段的@帐号列表里有没有自己,如果有,则界面上做被@的提醒。 |
正在输入 | 通过自定义系统通知实现,可参见:发送自定义系统通知。 |
容易混淆的消息概念
通知消息和系统通知
概念区别
-
通知消息属于会话内的一种消息(消息类型为
type.notification
),一般位于聊天界面中,支持在线、离线和漫游,目前用于(已操作完成的)高级群、超大群和聊天室相关的通知消息,所有成员都能收到,不计入消息未读数,没有推送和通知栏提醒。例如:群名称更新时,群聊界面上显示“群名称更新”。
-
系统通知属于网易云信内建的系统通知,由网易云信服务器推送给用户的通知类消息,用于网易云信系统类的事件通知。现在主要包括群变动的相关通知,例如入群申请,入群邀请等,如果第三方应用还托管了好友关系,好友的添加、删除也是这个类型的通知。系统通知由 SDK 负责接收和存储,并提供较简单的未读数管理。只有在线和离线,没有漫游。没有推送和通知栏提醒(如有需要,通过自定义系统通知实现)。更多系统通知相关介绍,参见系统通知概述。
使用场景区别
-
通知消息一般位于聊天界面的中间。例如:群名称更新、某某某退出了群聊等。
-
系统通知通常在验证消息列表中展现。例如:某某某请求加你为好友等。
自定义消息和自定义系统通知
概念区别
-
自定义消息属于会话内的一种消息,主要提供给开发者定制消息使用,支持在线、离线、漫游、通知栏提醒。提供给开发者自定义的全局的系统通知类型,只有在线和离线,没有漫游。
-
自定义系统通知和自定义消息的不同之处在于,自定义消息归属于会话中的消息体系内,由 SDK 存储在消息数据库中,与网易云信的其他内建消息类型一同展现给用户。而自定义系统通知属于系统通知,主要用于开发者自定义的事件状态通知;网易云信不存储,也不解析这些通知,仅负责替开发者应用传递这些事件信息,起到透传作用。
使用场景区别
-
自定义消息一般与普通文本,语音消息相同,位于聊天界面的左右两侧。例如,猜拳、贴图、阅后即焚均可以采用自定义消息来实现。
-
自定义系统通知的一个典型场景为聊天双方处于单聊界面时,显示的“正在输入”通知。
内容审核相关参数
消息结构中的内容审核(反垃圾)相关参数如下:
参数 |
类型 | 说明 |
---|---|---|
yidunAntiCheating |
string | 易盾反作弊字段,长度限制1024,JSON字符串格式。如:"{"email":"test@163.com","phone":"12345678901","token":"1234","extension":"hello"}"。具体请参见文本防刷版开发文档 |
yidunAntiSpamExt |
string | 易盾反作弊扩展字段字段,2021-08-09 追加。限制 JSON 格式字符串,长度上限 1024,具体请参见易盾的反垃圾增强版用户可扩展参数 |
yidunEnable |
boolean | 是否需要对自定义消息的指定内容(antiSpamContent)使用安全通进行安全检测,默认 false |
antiSpamUsingYidun |
boolean | 是否使用安全通对当前消息进行内容安全检测,默认 true |
antiSpamContent |
string | 自定义消息中需额外进行审核的内容,yidunEnable 开启后才能配置该参数,且仅对自定义消息有效。必须传递 JSON 格式字符串,长度不超过 5,000 字节 格式如下:{"type": 1, "data": "custom content"} 字段说明:
|
antiSpamBusinessId |
string | 安全通自定义业务 ID,传入此参数则消息通过安全通自定义业务进行安全审核;如需新增安全通自定义业务,请联系商务经理进行相关配置,然后前往云信控制台的安全通配置界面获取该业务 ID。 |
yidunAntiSpamRes |
string | 安全通(易盾反垃圾)返回的审核结果字段,格式为JSON,具体说明参见审核结果字段说明 |
更多内容审核相关说明,参见反垃圾(内容审核)。