Skip to content

IM 即时通讯

核心能力

会话类型

类型说明人数上限
单聊(P2P)一对一私信2 人
群聊(Group)普通群组默认 200,可扩展至 3000
超大群(Team)大型群组最大 6000 人
聊天室(Chatroom)直播间弹幕场景无上限(百万级)

消息类型

消息类型
├── 基础消息
│   ├── 文本(支持 Emoji、@提及)
│   ├── 图片(自动压缩、缩略图)
│   ├── 语音(AMR/AAC 格式)
│   ├── 视频(MP4)
│   └── 文件(任意格式)
├── 高级消息
│   ├── 地理位置
│   ├── 提示消息(系统通知)
│   └── 自定义消息(JSON 扩展字段)
└── 特殊消息
    ├── 撤回消息
    ├── 已读回执
    └── 消息引用(回复)

离线推送

离线推送链路
用户离线

云信服务端检测到离线

调用厂商推送通道
    ├── iOS:APNs
    ├── Android:
    │   ├── 华为推送
    │   ├── 小米推送
    │   ├── OPPO 推送
    │   ├── vivo 推送
    │   └── FCM(海外)
    └── 自定义推送(透传)

高级特性

消息漫游

  • 历史消息云端存储,换设备后可拉取
  • 默认保存 7 天,可配置至 1 年
  • 支持按时间范围、消息类型查询

已读回执

单聊已读回执:
  A 发消息 → B 收到并阅读 → B 的 SDK 自动发送已读回执 → A 看到「已读」标记

群聊已读回执(需开启):
  发送方可查看每条消息的已读人数和未读人数

消息优先级(聊天室)

聊天室场景下,可设置消息优先级:

  • 高优先级:主播消息、礼物消息,保证必达
  • 普通优先级:普通弹幕,高并发时可能丢弃

反垃圾(与易盾联动)

消息发送流程(开启内容安全)
用户发送消息

云信 SDK → 云信服务端

调用易盾内容安全 API
    ├── 通过:正常下发
    ├── 疑似:人工审核队列
    └── 违规:拦截,返回错误码

集成示例

Android 发送文本消息

java
// 初始化 SDK
NIMClient.init(this, loginInfo, options);

// 发送单聊文本消息
String sessionId = "target_account";
SessionTypeEnum sessionType = SessionTypeEnum.P2P;
TextMsgBuilder builder = MessageBuilder.buildTextMessage(sessionId, sessionType, "Hello!");
NIMClient.getService(MsgService.class).sendMessage(builder, false);

iOS 发送图片消息

swift
// 构建图片消息
let message = NIMMessage()
let imageObject = NIMImageObject(image: UIImage(named: "photo")!)
message.messageObject = imageObject

// 发送
let session = NIMSession(targetId, type: .P2P)
try? NIMSDK.shared().chatManager.send(message, to: session)

Web 监听消息

typescript
import NIM from '@yxim/nim-web-sdk'

const nim = NIM.getInstance({
  appKey: 'your_app_key',
  account: 'user_account',
  token: 'user_token',
  onmsg: (msg) => {
    console.log('收到消息:', msg)
  }
})

性能指标

指标数值
消息到达率99.99%
国内端到端延迟< 100ms(P99)
离线消息保存时长7 天(默认)
单群最大人数6000 人
聊天室并发百万级

网易智企产品解决方案知识库