核心定位

IM 模組為你的平臺提供內建即時通訊能力——無需整合第三方 IM SDK(如環信、融雲),直接在系統內實現私聊、群聊、頻道推送和音視訊通話。特別適合需要「平臺內通訊」的場景,如電商客服、企業內部溝通、社群私信等。

一句話:讓你的使用者在你的平臺裡就能聊天,資料和體驗完全可控。


解決什麼問題

痛點IM 如何解決
第三方 IM SDK 費用高自建 IM,零額外成本
使用者資料存在第三方聊天資料在自己的資料庫
需要與業務系統打通使用者體系、好友關係與業務聯動
音視訊通話能力整合 LiveKit,支援 WebRTC 通話

使用者角色

graph LR subgraph 角色 IM_USER["普通使用者
私聊/群聊
傳送文字/圖片/檔案/語音
音視訊通話"] IM_ADMIN["IM 管理員
管理群組
配置頻道
管理敏感詞
檢視訊息記錄"] end

功能架構

graph TB subgraph 核心功能["核心功能"] MSG2["訊息中心
私聊/群聊
文字/圖片/檔案/語音/影片"] FRIEND["好友關係
新增/刪除/黑名單"] GROUP["群組管理
建立/加入/退出/禁言"] CHANNEL["頻道推送
公告/通知廣播"] CALL["音視訊通話
基於 LiveKit
WebRTC"] end subgraph 輔助功能 EMOJI["表情管理"] SENSITIVE["敏感詞過濾"] end subgraph 通訊層["通訊層"] WS["WebSocket 實時通訊
local / redis / rocketmq
/ kafka / rabbitmq"] end 核心功能 --> 通訊層 輔助功能 --> 核心功能

核心 ER 圖

erDiagram IM_USER ||--o{ IM_MESSAGE : "傳送" IM_USER ||--o{ IM_FRIEND : "好友關係" IM_USER ||--o{ IM_GROUP_MEMBER : "群成員" IM_GROUP ||--o{ IM_GROUP_MEMBER : "包含" IM_GROUP ||--o{ IM_MESSAGE : "群訊息" IM_CHANNEL ||--o{ IM_CHANNEL_MESSAGE : "頻道訊息" IM_CHANNEL ||--o{ IM_CHANNEL_MEMBER : "頻道成員" IM_MESSAGE { bigint id PK bigint from_user_id FK "傳送者" bigint to_user_id FK "接收者" bigint group_id FK "群組" tinyint type "訊息型別" text content "訊息內容" datetime create_time "傳送時間" } IM_GROUP { bigint id PK varchar name "群名稱" bigint owner_user_id FK "群主" tinyint status "狀態" } IM_CHANNEL { bigint id PK varchar name "頻道名稱" tinyint type "頻道型別" }

資料庫表分組

分組表數量說明
訊息中心2 表訊息記錄、訊息會話
好友關係2 表好友、好友申請
群組管理3 表群組、群成員、群公告
頻道推送3 表頻道、頻道成員、頻道訊息
音視訊通話2 表通話記錄、通話參與人
其他4 表表情、敏感詞等

WebSocket 通訊模式

graph TB subgraph 傳送模式["訊息傳送模式(可切換)"] LOCAL["local
單機模式
開發除錯用"] REDIS3["redis
Redis 廣播
小規模叢集"] ROCKET2["rocketmq
RocketMQ
高吞吐"] KAFKA2["kafka
Kafka
大規模"] RABBIT2["rabbitmq
RabbitMQ
企業級"] end

應用場景

場景使用方式
電商客服買家 ↔ 商家客服私聊
企業內部通訊員工群聊、部門頻道
社群私信使用者之間私聊
線上教育學生 ↔ 老師、課程群聊 + 音影片
醫療諮詢患者 ↔ 醫生私聊 + 音影片問診
docs