消息概述

更新时间: 2025/09/03 10:45:50

消息一般指会话内消息,仅展示在聊天界面中,包括单聊和群组消息。

消息类型

NIM SDK 内置支持的会话内消息包括以下类型:

消息类型
说明 使用限制
文本消息 消息内容为普通文本 长度上限 5,000 字符
图片消息 消息内容为图片 URL 地址、尺寸、图片大小等图片相关信息 -
语音消息 消息内容为语音文件的 URL 地址、时长、大小、格式等语音相关信息 上传默认语音时长上限 120 秒(可自定义配置),文件大小无限制,建议应用根据业务场景进行限制。
视频消息 消息内容为视频文件的 URL 地址、时长、大小、格式等视频相关信息 上传无视频时长和文件大小限制,建议应用根据业务场景进行限制
文件消息 消息内容为文件的 URL 地址、大小、格式等文件相关信息 格式不限,SDK 上传无大小限制,服务端上传文件最大 15 MB,建议应用根据业务场景进行限制
地理位置消息 消息内容为地理位置标题、经度、纬度信息 -
提示消息 又称 Tip 消息,无推送和通知栏提醒,主要用于会话内的通知提醒,例如进入会话时出现的欢迎消息,或是会话过程中命中敏感词后的提示消息等场景。 -
通知消息 主要用于群组、超大群的事件通知,由服务端下发,客户端无法发送事件通知消息。通知类消息有在线、离线、漫游机制,无通知栏提醒。 -
自定义消息 开发者自定义的消息类型,例如红包消息、石头剪子布等形式的消息。 -

消息功能

除了支持丰富的消息类型外,NIM SDK 还为开发者提供了多种消息功能支持:

消息功能
说明 使用限制
离线消息 用户离线时,好友发送的消息。当用户再次上线时,离线消息会被下发到客户端。 各套餐包中漫游消息的限制不同,具体请访问 增值服务
漫游消息 在切换设备(或卸载重装)登录时,可读取其他设备最近已接收过的消息,服务器记录的漫游消息将自动同步到客户端 SDK。 消息漫游默认关闭,需要在 网易云信控制台 单独开通。开通漫游功能之前发送的消息无法漫游。
多端同步 当用户在多个客户端同时在线时,其中一端发出的消息将实时同步到其他端。 -
历史消息 支持本地历史消息和云端历史消息。 根据套餐包的不同可获取到最近的云端历史消息,支持扩展时间至应用服务有效期内。
消息撤回 撤回投递成功的消息。 默认撤回 2 分钟内的消息,支持自定义可撤回的时长(网易云信控制台设置)。撤回操作仅支持单聊和群聊消息。
已读回执 消息接收方发送给消息发送方的已读状态。 -
消息转发 将接收的消息发给其他用户或群组。 -
消息更新 对消息做二次修改。 只能更新已发送成功的消息。
消息过滤 可过滤消息(一般针对通知消息)。 -
搜索消息 可对云端历史消息进行全文搜索。 需要在控制台开通 全文云端消息检索 功能。
消息插入 将消息插入本地数据库。 -
消息扩展功能 可进行消息快捷评论、收藏消息、PIN 消息操作。 需要在控制台开通对应功能。
@ 某人 通过消息扩展字段实现。当发送群消息 @ 某人的时候,可以通过扩展字段带上被 @ 的账号列表发送出去。群成员收到群消息时,查看扩展字段的 @ 账号列表里是否包括自己,如有则在 UI 界面上添加被 @ 的提醒。 -
正在输入 通过自定义系统通知实现,可参考 发送自定义通知 -

概念解释

通知消息和系统通知

  • 概念

    通知消息属于 会话内 的一种消息,有在线、离线、漫游。目前用于(已操作完成的)群通知事件,不计入消息未读数。没有推送和通知栏提醒。

    系统通知属于网易云信内建的系统通知,由网易云信服务器推送给用户的通知类消息,用于网易云信系统类的事件通知。现在主要包括群变动的相关通知,例如入群申请,入群邀请等,如果第三方应用还托管了好友关系,好友的添加、删除也是这个类型的通知。系统通知由 SDK 负责接收和存储,并提供较简单的未读数管理。只有在线和离线,没有漫游。没有推送和通知栏提醒(如有需要,通过自定义系统通知实现)。

  • 使用场景

    通知消息一般位于聊天界面的中间。例如:群名称更新、某某某退出了群聊等。

    系统通知通常在验证消息列表中展现。例如:某某某请求加您为好友等。

自定义消息和自定义系统通知

  • 概念

    自定义消息属于会话内的一种消息,主要提供给开发者定制消息使用,有在线、离线、漫游、通知栏提醒。提供给开发者自定义的全局的系统通知类型,只有在线和离线,没有漫游。

    自定义系统通知和自定义消息的不同之处在于,自定义消息归属于会话中的消息体系内,由 SDK 存储在消息数据库中,与网易云信的其他内建消息类型一同展现给用户。而自定义系统通知主要用于事件状态通知。网易云信不存储,也不解析这些通知,仅负责替开发者应用传递和通知这些事件,起到透传作用。

  • 使用场景

    自定义消息一般与普通文本,语音消息相同,位于聊天界面的左右两侧。例如,猜拳、贴图、阅后即焚均可以采用自定义消息来实现。

    自定义系统通知的一个典型场景为聊天双方处于单聊界面时,显示的正在输入通知。

消息体概述

NIM SDK 中的 V2NIMMessage 表示消息对象,用于描述一条消息具有的属性,如类型、消息的内容、所属的会话 ID 等。

名称 类型 是否只读 说明
messageClientId String 客户端消息 ID,消息在客户端生成的 UUID。不会多端同步。
messageServerId String 服务器消息 ID,消息发送成功后 服务器生成的 UUID。会多端同步。
消息发送成功前只存在 messageClientId
createTime long 消息时间戳,单位毫秒。
  • 消息发送成功前,该字段为消息发送者本地时间。
  • 消息发送成功后,该字段为服务器时间。
  • senderId String 消息发送方账号 ID。
    receiverId String 消息接收方账号。
  • 如果消息所属会话类型为单聊,该字段为聊天对象账号 ID。
  • 如果消息所属会话类型为群组,该字段为群组 ID。
  • conversationType

    V2NIMConversationType

    消息所属会话类型:

    • V2NIM_CONVERSATION_TYPE_P2P:点对点
    • V2NIM_CONVERSATION_TYPE_TEAM:高级群
    • V2NIM_CONVERSATION_TYPE_SUPER_TEAM:超大群
    conversationId String 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
    aiConfig V2NIMMessageAIConfig 数字人相关的 AI 聊天信息。
    isSelf boolean 消息发送方是否为本人。
    attachmentUploadState V2NIMMessageAttachmentUploadState 消息附件上传状态:上传成功、上传失败、正在上传。
    sendingState V2NIMMessageSendingState 消息发送状态:发送成功、发送失败、正在发送。
    messageType V2NIMMessageType 消息类型。文本消息;图片消息;语音消息;视频消息;地理位置消息;文件消息;音视频通话;提示消息;自定义消息。
    subType int 自定义消息子类型,0 表示无消息子类型。
    text String 消息文本内容,仅文本类型的消息有该字段。
    attachment V2NIMMessageAttachment 消息附件,仅图片、语音、视频、文件类型消息有该字段。长度限制与各套餐的配置(消息 attach 字段大小上限)有关,具体请参考 字段限制说明
    serverExtension String 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 2048 字节,多端同步。
    localExtension String 消息本地扩展字段,必须为 JSON 格式封装,不可多端同步。长度上限为 2048 字节。默认为空("")。
    callbackExtension String 第三方回调透传的自定义扩展字段,长度上限为 2048 字节。
    第三方回调功能需要在 网易云信控制台开通
    messageConfig V2NIMMessageConfig 消息相关配置,例如是否需要保存离线/漫游消息,是否计入未读数等。
    pushConfig V2NIMMessagePushConfig 第三方推送相关配置。
    第三方推送功能需要在 网易云信控制台配置
    routeConfig V2NIMMessageRouteConfig 消息事件抄送相关配置。
    消息抄送功能需要在 网易云信控制台开通
    antispamConfig V2NIMMessageAntispamConfig 反垃圾相关配置。
    反垃圾功能包括客户端反垃圾和安全通,均需要在 网易云信控制台开通
    robotConfig V2NIMMessageRobotConfig 机器人相关配置。
    机器人功能需要在 网易云信控制台配置
    threadRoot V2NIMMessageRefer 消息回复的根消息参考信息。
    消息回复功能需要在 网易云信控制台开通
    threadReply V2NIMMessageRefer 消息回复的父消息参考信息。
    消息回复功能需要在 网易云信控制台开通
    messageStatus V2NIMMessageStatus 消息状态相关信息,包含消息发送失败的错误码以及是否已发送过已读回执。
    modifyTime Long 消息更新时间,默认为 0。
    modifyAccountId String 消息更新者账号,默认为 null/undefined。
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 消息类型
    • 消息功能
    • 概念解释
    • 通知消息和系统通知
    • 自定义消息和自定义系统通知
    • 消息体概述