# ChatWave **Repository Path**: clever_student/chat-wave ## Basic Information - **Project Name**: ChatWave - **Description**: 这是一款局域网聊天的工具,前端使用Vue3+Vite,后端使用Flask+SQLite搭建而成的。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 5 - **Created**: 2025-06-24 - **Last Updated**: 2025-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: 局域网聊天工具, 局域网聊天系统, Vue3聊天系统 ## README # ChatWave - 局域网即时通讯工具 *来自一个大三学生的课设作业,项目完善度可能不太高,如果您有想法或者建议,希望能够悄悄指正🤐* ## 项目简介 ChatWave 是一个专为局域网环境设计的轻量级即时通讯工具,采用现代Web技术栈构建。项目提供完整的用户认证系统、实时聊天功能和在线状态管理,无需互联网连接即可在本地网络环境中实现安全通信。前端基于Vue 3构建响应式界面,后端使用Flask提供RESTful API和实时Socket通信,SQLite作为嵌入式数据库确保数据持久化。 ## ⚠️ 注意事项 克隆/下载前请先阅读 **“🐼 安装与运行(必看)”** 部分,使用指定的克隆方法,如下: ``` git clone --recursive https://gitee.com/clever_student/chat-wave.git ``` ## 功能特点 ### 😸 核心功能 - **用户认证系统**:安全的注册/登录流程,JWT令牌保护 - **实时聊天**:一对一即时消息传输,毫秒级延迟 - **在线状态**:实时显示用户在线/离线状态 - **消息历史**:完整保存聊天记录 - **通知系统**:新消息实时提醒 ### 😏技术亮点 - **双协议通信**:HTTP + WebSocket混合架构 - **响应式设计**:完美适配桌面和移动设备 - **自动重连**:网络波动时自动恢复连接 - **心跳检测**:10秒间隔维持长连接活性 - **房间隔离**:用户专属通信通道保障隐私 ### 🧐 不足之处 - **历史聊天记录**:没有完善对聊天记录的删除以及加载优化 - **账号管理**:没有完善对账号的注销 - **文件传输**:还未开发此功能 - **群聊功能**:还未开发此功能 - **安全性**:未对账号密码进行加密,任何人都可以注册等 ## 技术栈 ### 前端 - Vue 3 (Composition API) - Vue Router - Socket.IO Client - Axios ### 后端 - Flask - Flask-SocketIO - Flask-JWT-Extended - Flask-SQLAlchemy - SQLite ## 🐼 安装与运行(必看) ### 前置要求(仅参考) - Python 3.9+ - Node.js 22.13.1+ - npm 11.1.0+ - pip 25.1.1+ ### 克隆/下载 **注意:克隆一定要加--recursive参数**(添加 `--recursive` 参数会同时克隆所有子模块的内容) ``` git clone --recursive https://gitee.com/clever_student/chat-wave.git ``` 如果克隆时**忘记加参数**或者直接点击**下载zip**那么请继续以下操作将子仓库代码克隆下载 ``` # 进入项目目录 cd chat-wave # 初始化子模块配置 git submodule init # 检出子模块内容 git submodule update ``` ## 项目结构(大致) ``` chatwave/ ├── backend/ # 后端服务 │ ├── app.py # Flask主应用 │ ├── requirements.txt # Python依赖 │ └── instance/chat.db # 数据库运行时自动生成 │ ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Login/ # 登录注册界面 │ │ │ └── Chat/ # 主聊天界面 │ │ ├── router/ # 路由配置 │ │ ├── assets/ # 静态资源 │ │ ├── main.js # 入口文件 │ │ ├── style.cs # 全局样式文件 │ │ └── App.vue # 根组件 │ ├── index.html # 首页 │ ├── package.json # 前端依赖 │ └── vite.config.js # vite配置 │ └── README.md # 项目文档 ``` ### 后端安装 ``` # 进入后端根文件夹 cd chat-wave/backend # 创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 运行后端 python app.py ``` ### 前端安装 ``` # 进入前端根文件夹 cd chat-wave/frontend # 安装依赖 npm install # 运行前端 npm run dev ``` 访问 `http://localhost:8233/` 开始使用ChatWave(可参考使用指南部分) ### 如果前端提示代理或连接错误 请确保后端运行的地址接口与前端对接的接口是否一致 1. 复制后端接口地址,如下图: 2. 找到前端 **vite.config.js** 文件,将代理目标替换成刚刚复制的地址接口,文件路径如下: ``` chat-wave\frontend\vite.config.js ``` 3. 找到前端 **ChatContainer.vue** 文件,将socket连接地址替换成刚刚复制的地址接口,文件路径如下: ``` chat-Wave\frontend\src\views\Chat\ChatContainer.vue ``` 4. 重新启动前端项目,开始使用ChatWave(可参考使用指南部分) ## 使用指南 1. **注册账号** 首次使用需创建账户,设置用户名和密码 请**至少创建两个账号**用于聊天测试 2. **登录系统** 使用注册凭证登录,获取访问令牌 同一个系统下请使用不同浏览器分别登录这两个账号 3. **开始聊天** - 左侧选择在线用户 - 输入消息并发送 - 查看实时聊天记录 4. **管理连接** - 顶部显示当前用户状态 - 右下角显示在线用户数 - 菜单可退出登录 ## 运行效果 ### 登录界面 ### 注册界面 ### 聊天界面 ### 双方聊天 ## 联系作者 - 请使用微信扫一扫 - 您的反馈是我们更新的动力源泉,我们非常乐意得到您宝贵的反馈!