# litechat **Repository Path**: Whu_zpc/litechat ## Basic Information - **Project Name**: litechat - **Description**: 使用 MongoDB 的聊天应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-19 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 轻语 (LiteChat) 轻语是一款简洁、高效、美观的即时通讯应用,专注于纯粹的沟通体验。 ## 项目启动方法 ### 安装依赖 1. 安装根目录依赖 ```bash npm install ``` 2. 安装前端依赖 ```bash cd frontend && npm install && cd .. ``` 3. 安装后端依赖 ```bash cd backend && npm install && cd .. ``` ### 数据库准备 确保已安装并启动 MongoDB 服务。默认连接地址为:`mongodb://localhost:27017/litechat` ### 启动应用 在项目根目录执行以下命令,同时启动前端和后端服务: ```bash npm run dev ``` 启动后可通过以下地址访问: - 前端:http://localhost:3000 - 后端:http://localhost:5000 ## 技术栈 ### 前端 - Vue.js 3 (Composition API) - Tailwind CSS - Pinia - Socket.IO-client ### 后端 - Node.js + Express.js - Socket.IO - JWT认证 - MongoDB + Mongoose ## 群组功能 轻语聊天应用支持群组聊天功能,具有以下特性: ### 群组管理 - 创建群组:用户可以创建新的聊天群组 - 群组邀请码:每个群组有一个唯一的6位邀请码,可用于邀请他人加入 - 群组头像:支持自定义群组头像 - 群组成员管理:支持将成员设为管理员或移除成员 ### 加入群组 - 通过邀请加入:用户可以邀请好友加入群组,被邀请者需要确认 - 通过邀请码加入:用户可以输入群组邀请码申请加入群组,加入申请需要群管理员批准 ### 群组角色 - 普通成员:可以发送消息、查看群信息 - 管理员:可以管理群组设置、处理入群申请、管理群成员 ### 群组消息 - 实时消息:支持群组内实时消息发送和接收 - 未读消息统计:显示每个群组的未读消息数量 - 消息搜索:支持在群组内搜索历史消息 ### 技术实现 - 群组相关数据存储在MySQL数据库中 - 群组消息存储在MongoDB数据库中 - Socket.IO用于实现群组消息的实时通信 ## API接口说明 ## 功能特性 ### 基础功能 - 用户注册和登录 - 好友添加和管理 - 实时私聊消息 - 消息已读状态 - 在线状态显示 - 用户头像和个人资料 - 历史消息加载 - 输入状态提示 - 消息搜索功能 ### 群组功能 - 创建群组 - 群组邀请 - 群组成员管理 - 群组消息 - 群组邀请码 - 申请加入群组 - 群组角色(管理员/成员) - 群组消息未读计数 ## 最新更新 ### 群组邀请功能优化 (2024) 改进了群组邀请功能的用户体验,特别是针对重复邀请的情况: #### 主要改进 1. **友好的重复邀请提示** - 当尝试邀请已经收到过邀请的好友时,系统会显示琥珀色的温馨提示而不是红色错误 - 提示内容:"该好友已经收到过邀请,请耐心等待回应。您可以选择其他好友进行邀请。" 2. **详细的邀请结果反馈** - 批量邀请时会显示详细的结果统计 - 区分成功发送、重复邀请和失败的情况 - 不同类型的提示使用不同的颜色和图标 3. **改进的错误提示样式** - 重复邀请:琥珀色背景,带有警告图标 - 发送失败:红色背景,带有错误图标 - 包含详细的错误信息和建议操作 4. **增强的用户引导** - 在选择好友时显示温馨提示 - 解释邀请机制和限制 - 提供清晰的操作指导 #### 技术实现 - 增加了错误类型分类 (`errorType`: 'duplicate', 'failed', 'info') - 改进了批量邀请的错误处理逻辑 - 使用 `Promise.allSettled` 来处理并发邀请请求 - 增强了 Toast 通知的分类和持续时间 这些改进显著提升了用户在邀请好友加入群聊时的体验,减少了困惑并提供了更清晰的反馈。