Skip to content

项目概述

简介

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 模式 + 防抖写入                         │
│  数据库文件随服务自动创建                      │
└─────────────────────────────────────────────┘