Appearance
项目概述
简介
IM 即时通讯系统是一套轻量级的企业级即时通讯解决方案,提供单聊、群聊、好友管理、消息推送等核心功能。系统采用前后端分离架构,后端可独立部署,前端基于 UniApp 支持多端运行(H5、微信小程序等)。
核心功能
消息通讯:支持文本消息和图片消息的实时收发,消息支持引用回复,可在 2 分钟内撤回已发送的消息。所有消息通过 WebSocket 实时推送,离线时自动降级为 HTTP 轮询。
好友系统:完整的添加好友、好友请求、删除好友流程,支持用户屏蔽/解除屏蔽功能。好友列表实时显示在线状态。
群组管理:支持创建群组、邀请成员、设置管理员、转让群主、禁言成员、踢出成员、解散群组等操作。群主和管理员可编辑群信息和发布公告,公告更新实时通知所有群成员。
未读计数:自动统计每个会话的未读消息数,进入聊天页面自动清除,首页显示总未读数。
推送通知:支持浏览器 Web Push 通知(基于 VAPID),用户离线时消息自动触发推送。支持免打扰模式。
单点登录:可选开启 SSO 模式,同一账号仅允许一个设备在线,新登录会踢出旧连接。
系统要求
| 项目 | 要求 |
|---|---|
| 运行环境 | Node.js >= 14(源码部署)或独立二进制(无需 Node.js) |
| 操作系统 | macOS / Linux / Windows |
| 内存 | >= 256MB |
| 磁盘 | >= 50MB(含数据库空间) |
| 网络 | 需开放 HTTP 端口(默认 3000)和 WebSocket 端口 |
技术架构概览
┌─────────────────────────────────────────────┐
│ 前端 (UniApp / Vue 2) │
│ TuniaoUI 组件库 + im_page_mixin 公共逻辑 │
│ im-push-listener 全局 WebSocket 推送监听 │
└──────────────┬──────────────────────────────┘
│ HTTP / WebSocket
▼
┌─────────────────────────────────────────────┐
│ IM 后端 (Node.js + Express) │
│ REST API (49 个接口) │
│ WebSocket 实时消息 (17 种事件类型) │
│ JWT 认证 + API Key 管理员认证 │
│ 频率限制 + 速率控制 │
└──────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ SQLite (sql.js / WebAssembly) │
│ 9 张数据表 + 10 个索引 │
│ WAL 模式 + 防抖写入 │
│ 数据库文件随服务自动创建 │
└─────────────────────────────────────────────┘