多租户即时通讯中台 · SaaS / 私有化部署

置森IM中台
让每一次沟通即时可达

单聊 · 群聊 · 离线消息 · 已读回执

面向小程序、App、网站的多租户即时通讯中台。业务方申请 appKey/appSecret 即可接入: Java 17 + Spring Boot 3.3 企业级后端,REST 三套 API + WebSocket 实时通道, 消息加密落库、租户物理隔离、限流配额与用量统计开箱即用。

3套
API 接口面
62项
自动化断言验证
4端
小程序/App/Web/服务端
256位
AES-GCM 消息加密
⚡WS 实时通道端到端延迟 23ms
🔒AES-256-GCM消息密文落库
✓已读回执未读角标 · 历史漫游
项目协作群 12 人在线
置森IM · 端到端加密通道已建立
今天 14:02
张三
客户端已经连上 WS 了,消息秒到 👍
弱网下重试过吗?会不会丢消息?已读
张三
clientMsgId 幂等去重,重试也不重投,离线上线即达 ✓
李四 加入了群聊
稳!明天给客户演示就靠它了送达 ✓
输入消息…
➤
PAIN POINTS

自研 IM 太难?四大痛点逐一击破

消息中台自建的普遍困局,置森用一套中台全部解决

🔧

自研成本高

协议设计、长连接网关、消息存储、多端适配……自研 IM 动辄数人年投入,中小团队难以负担。

→ 申请密钥即用的中台能力 ✓
📉

可靠性难保障

弱网重发、消息去重、离线补拉,任何一环出错都是用户客诉与数据事故,修复成本极高。

→ 持久化 + 幂等去重 + 离线必达 ✓
🧩

多端接入碎

小程序、App、Web 的长连接实现各异,业务还要自建账号打通与消息推送体系,维护碎片化。

→ 一条 WS 通道全端复用 ✓
🛡️

安全无管控

接入方滥用打爆服务、聊天内容明文落库,合规审计无从谈起,出事后追责无据可查。

→ QPS 限流配额 + 字段级加密 ✓
ARCHITECTURE

一云多端 · 统一架构

云端一体化核心,三套 API + 一条实时通道,数据实时同步,一套后台全局掌控

☁️ 置森IM云端一体化平台

Java 17 · Spring Boot 3.3 企业级后端 · REST /api/* 与 WS /ws 同端口 · MySQL 8 持久化 + Redis 7 实时计数,单容器亦可整体交付

三套 API 面 HMAC 防重放签名 租户物理隔离 消息字段级加密 Docker 一键部署
⇩ ⇩ ⇩ ⇩
🔗

接入方服务端

appKey/appSecret HMAC 签名调用 /api/open/*:换用户 token、服务端代发消息、建群拉人,密钥永不出服务端。

📱

接入方前端

小程序 / App / 网站持 24h 短时 token 直连 WebSocket,JSON 帧收发消息,跨域已放行,即接即用。

🖥️

中台管理后台

React 管理工作台:接入方启停与密钥重置、QPS/日配额配置、用量看板趋势、敏感词监控一屏掌控。

🗄️

数据与安全底座

消息 AES-256-GCM 密文落库、按租户派生密钥;全部数据按 tenantId 物理隔离,全链路租户校验。

CORE FEATURES

六大能力板块 · 一站配齐

从消息可靠性到安全管控,覆盖即时通讯中台全场景,点击切换查看各板块详解

💬

① 单聊与消息可靠性

每条消息必达、必达唯一,弱网重试也不重投
  • 1
    幂等去重

    clientMsgId 全局唯一,弱网重试复用同一 ID,服务端自动去重,绝不重复投递。

  • 2
    离线消息

    对方离线不丢消息,上线拉取会话/历史即达,未读数精准累计。

  • 3
    历史漫游

    会话消息持久化分页存储,向上滚动 beforeId 续拉,换端漫游不丢档。

  • 4
    已读回执

    单聊已读水位实时推送,依据 lastReadMsgId 将己方消息精确标记「已读」。

  • 5
    事务后推送

    WS 推送在数据库事务提交后执行,从机制上杜绝「幽灵消息」。

  • 6
    会话管理

    未读角标、最后一条预览;单聊删除仅影响自己一侧,对方再发消息自动恢复。

⚙️ 一条消息的旅程

1
chat.send 发出

客户端生成唯一 clientMsgId,本地先渲染「发送中」。

2
落库并加密

AES-256-GCM 密文持久化,幂等键查重拦截重复提交。

3
事务提交后投递

对方在线经 WS 实时收到 chat.message;离线静待上线补拉。

4
ack 与回执闭环

发送方收 chat.ack 置「已送达」;对方已读后收 readReceipt 置「已读」。

💡 以上链路在 scripts/e2e.mjs 中以 62 项断言自动化验证:单聊/ack/实时投递/已读回执/幂等/离线漫游全绿。
👥

② 群聊全生命周期

建群、邀请、踢人、退群、解散,事件全群实时可见
  • 1
    便捷建群

    终端用户与服务器侧均可建群,创建者即群主,群号自动分配。

  • 2
    邀请与踢人

    仅群主可邀请/踢出成员,权限实时校验,越权操作直接拒绝。

  • 3
    群事件推送

    created / invited / kicked / quit / dissolved 事件实时推送全群,会话即时刷新。

  • 4
    成员查询

    群成员列表接口随时拉取;界面按角色显隐操作按钮,群主/成员各见其权。

  • 5
    服务端代建群

    /api/open/groups 服务端直接建群拉人,业务侧自动开群无感同步。

⚙️ 群事件流转

建
建群

群主发起或服务端代建,成员即刻收到群会话。

变
成员变更

邀请入群 / 踢出群,事件帧推送全体成员。

退
退群与解散

成员可退群;群主不可退只可解散,解散事件全群广播。

💡 演示客户端已完整实现群操作交互,接入方可 直接参考或搬运 demo-client 源码。
🔑

③ 接入方与密钥管理

密钥只显示一次、重置秒级生效、禁用即时踢线
  • 1
    一对一密钥

    每个接入方独立 appKey/appSecret,secret 仅创建/重置时完整显示一次。

  • 2
    秒级失效

    secret 重置后旧钥立即失效;接入方禁用后全部在线连接即刻收到 kicked 帧断开。

  • 3
    防重放签名

    HMAC-SHA256 签名 + ±5 分钟时间窗 + nonce 五分钟防重放,伪造请求直接拒绝。

  • 4
    短时用户令牌

    终端用户 accessToken 默认 24 小时有效,过期重换;appSecret 永不进入前端代码。

  • 5
    单端在线策略

    同一用户新连接建立时自动踢掉旧连接并下发 kicked 帧,避免多端消息状态错乱。

⚙️ 密钥安全流转

1
后台创建接入方

管理员新建接入方,一次性展示 appKey/appSecret。

2
密钥入库服务端

接入方将 secret 保存于自家服务端,仅用于签名。

3
换发用户 token

服务端签名调用 /api/open/token,为终端用户换取短时令牌。

💡 安全红线:appSecret 只存在接入方服务端,任何签名请求都由后端发起,绝不打进小程序/App/网页代码。
📊

④ 限流配额与用量统计

滥用有闸门、运营有看板,小时级聚合一目了然
  • 1
    QPS 滑动窗口限流

    对 open/client 接口秒级计数,超限返回 429 且请求不执行,退避重试即可。

  • 2
    日配额管控

    按接入方配置每日调用上限,恶意调用当天自动熔断。

  • 3
    小时级用量聚合

    API 调用量、WS 连接数、单聊/群聊消息量、活跃用户、在线峰值逐小时落库。

  • 4
    趋势看板下钻

    7 / 14 / 30 天趋势总览,支持单租户下钻定位异常,运营汇报两相宜。

  • 5
    实时计数

    Redis 实时统计在线与调用数据,看板分钟级新鲜度。

⚙️ 管控闭环

监
实时监测

每个接入方的调用量与连接数持续计数。

控
超限熔断

QPS 超限 429 拒绝执行;日配额耗尽当日拦截。

审
看板审计

趋势与明细双重留痕,异常租户快速定位。

💡 限流阈值与日配额均可在管理后台 随时调整,无需重启服务,即时生效。
🔐

⑤ 安全加密与租户隔离

数据库只见密文,租户之间物理绝缘
  • 1
    字段级加密存储

    消息内容 AES-256-GCM 加密落库(enc:v1: 密文),读取自动解密,接入方无感知。

  • 2
    按租户派生密钥

    加密密钥按接入方派生,一租户一钥互不可解,单点泄露不扩散。

  • 3
    数据物理隔离

    全部数据按 tenantId 隔离,签名、换 token、消息、群组全链路租户校验。

  • 4
    用户边界封闭

    openUserId 仅在 appKey 内有效,跨接入方发消息/拉群一律拒绝。

  • 5
    明文自动迁移

    存量明文消息在启动时自动加密迁移,升级无感、不留死角。

⚙️ 加密读写链路

写
消息写入

按租户派生密钥加密消息体,密文入库。

存
密文落库

数据库中仅存 enc:v1: 前缀密文,拖库也读不出内容。

读
自动解密

API/WS 出口统一解密返回明文,业务零改造。

💡 主密钥 CENTER_MSG_ENC_KEY 由中台持有,生产环境必须覆盖并妥善保管。
🤖

⑥ 敏感词与服务端代发

内容有监测、通知有通道,运营手段齐备
  • 1
    统一敏感词库

    中台统一维护敏感词库,全部接入方即时生效,无需各自维护。

  • 2
    命中标记不拦截

    命中消息照常投递并标记 sensitive=true,是否处置由业务方自主决定。

  • 3
    监控看板

    按接入方/高频用户/命中词聚合统计,命中明细(解密后内容)随时可查。

  • 4
    服务端代发

    以任意用户身份代发系统通知/机器人消息,支持幂等键,适合订单与告警触达。

  • 5
    建群拉人代管

    服务端代建群、代拉人,业务群随业务流程自动开通,全程无感。

⚙️ 内容治理双通道

察
敏感词监测

消息流实时比对词库,命中即标记并进入统计。

观
看板巡检

按租户/用户/词条多维聚合,异常苗头早发现。

达
系统通知代发

服务端接口直发系统消息,在线实时推、离线必达。

💡 「标记不拦截」的设计把 处置权留给业务:营销号治理、未成年人保护等策略由接入方自定义。
QUICK START

三步接入 · 5 分钟跑通

申请密钥 → 服务端换 token → 前端连通道,最小闭环即刻可用

1

管理后台创建接入方

登录中台管理后台「接入方管理」新建接入方,复制弹窗中的 appKey/appSecret(secret 只显示这一次,请妥善保存)。

 接入凭据(仅展示一次)
appKey    = "ak_9f3e2b1c"
appSecret = "sk_****(复制保存)"
// 保存到你的服务端环境变量
2

服务端换用户 token

你的后端用 appSecret 做 HMAC-SHA256 签名,为体系内用户换取 24 小时短时 accessToken,首次调用自动注册。

 POST /api/open/token
{ "openUserId": "u101",
  "nickname": "张三",
  "avatar": "https://…" }
→ { accessToken, expiresInHours: 24 }
3

前端连 WebSocket 收发

小程序 / App / 网页持 token 直连 /ws,处理 chat.message、chat.ack、readReceipt 帧即完成聊天闭环。

 wss://im.example.com/ws
const ws = new WebSocket(
  `wss://im.xxx.com/ws?token=${token}`)
ws.onmessage = e => {
  const f = JSON.parse(e.data)
  if (f.type === 'chat.message') show(f.message)
}
✅ 62 项断言 e2e 脚本全绿 📦 demo-client 参考实现可直接搬运 📖 接入文档含 Node/Java/Python/小程序示例 🐳 Docker Compose 一键起全套环境
WHY ZHISEN IM

六大核心优势,选型更放心

从接入效率到安全合规,每一项都经得起自动化验证与生产检验

01
🚀

申请即用 · 极速接入

一对 appKey/appSecret 即可获得全部 IM 能力,三步跑通最小闭环;文档配齐 Node/Java/Python/小程序示例代码。

02
🧪

可靠性经得起验证

幂等去重、离线必达、事务后推送等关键链路以 62 项端到端断言自动化回归,版本升级不破能力。

03
🏢

多租户物理隔离

全部数据按 tenantId 物理隔离,签名、消息、群组全链路租户校验;跨接入方访问一律拒绝,互不串扰。

04
🔒

字段级加密存储

消息 AES-256-GCM 加密落库、按租户派生密钥,数据库只见密文;出口自动解密,业务零改造。

05
🎛️

统一管控运营

QPS 滑动窗口限流、日配额熔断、小时级用量聚合与敏感词监控,一套后台管住全部接入方。

06
🧰

全端覆盖 · 灵活交付

小程序/App/Web 一条 WS 通道通吃;SaaS 订阅开箱即用,Docker 一键私有化部署,数据完全本地化。

SCENARIOS

四类场景 · 规模化适配

同一套中台,灵活适配不同业务的沟通诉求

🛒

电商与本地生活

买卖家实时沟通、订单状态机器人代发触达,客服会话未读不漏,促成转化。

买卖家单聊订单通知代发客服会话
🎓

在线教育

师生答疑即时响应,班级群通知全量触达,开课提醒与作业消息离线必达。

班级群师生单聊开课通知
🏢

企业协作 SaaS

工作流审批通知、团队群聊协作、跨部门沟通留痕,已读回执让协同进度看得见。

流程通知团队群聊已读回执
🏘️

社区政务服务

网格员联络、办事咨询会话、公告统一推送,敏感词监测为内容安全兜底。

公告代发咨询会话敏感词监控
FAQ

常见问题

关于接入、部署、可靠性与安全的高频问题,在此一次说清

Q1接入大概要多久?▼

三步即可跑通最小闭环:管理后台创建接入方拿密钥、服务端签名换 token、前端连 WebSocket。参考 demo-client 源码通常半天内可完成联调;交付随附的 e2e 脚本含 62 项断言,可直接用于验收。

Q2支持私有化部署吗?▼

支持。提供 Docker Compose 一键编排(应用 + MySQL + Redis + 前端),也可裸机部署;系统部署于您指定的自有服务器环境,数据完全本地化,满足安全合规要求。

Q3消息会不会丢、会不会重?▼

每条消息库内持久化 + clientMsgId 幂等去重:弱网重试复用同一 ID,服务端自动去重绝不重投;对方离线不丢消息,上线拉取会话/历史即达;在线消息在数据库事务提交后才推送,无「幽灵消息」。

Q4聊天内容在中台如何存储?安全吗?▼

消息内容采用 AES-256-GCM 字段级加密落库,密钥按接入方派生,数据库中只有 enc:v1: 前缀的密文;所有 API/WebSocket 出口自动解密,接入方业务零改造。配合租户物理隔离与全链路租户校验,可满足审计与合规要求。

Q5一个账号能多设备同时在线吗?▼

中台采用单端在线策略:同一接入方内同一用户新建连接时,旧连接会立即收到 kicked 帧并被服务端关闭,避免多端消息状态错乱。旧端收到 kicked 后应停止自动重连,防止互踢循环。

Q6触发限流了怎么办?▼

QPS 超限返回 429,且该请求未被执行,等待约 1 秒做退避重试即可;日配额耗尽则当日拦截、次日恢复。限流上限与日配额可在管理后台随时调整、即时生效,生产环境请按峰值并发设置合理上限。

准备好让业务「开口说话」了吗?

一对密钥、三步接入,5 分钟跑通你的第一个聊天会话

☎ 028-82607695