# webchat-front **Repository Path**: walii/webchat-front ## Basic Information - **Project Name**: webchat-front - **Description**: WebChat 是一款功能完整的即时通讯(IM)前端应用,基于 Vue 3 + Vite + Element Plus 构建,提供类微信的聊天体验。支持文本、图片、语音、文件、视频等多媒体消息,具备好友管理、群组聊天、实时推送、响应式布局等企业级特性。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, JavaScript ## README # WebChat 即时通讯客户端 [![Vue](https://img.shields.io/badge/Vue-3.5.13-brightgreen)](https://vuejs.org/) [![Vite](https://img.shields.io/badge/Vite-6.1.0-646CFF)](https://vitejs.dev/) [![Element Plus](https://img.shields.io/badge/Element%20Plus-2.11.8-409EFF)](https://element-plus.org/) [![WebSocket](https://img.shields.io/badge/WebSocket-STOMP-important)](https://stomp.github.io/) [![License](https://img.shields.io/badge/License-MIT-blue)](LICENSE) **WebChat** 是一款功能完整的即时通讯(IM)前端应用,基于 Vue 3 + Vite + Element Plus 构建,提供类微信的聊天体验。支持文本、图片、语音、文件、视频等多媒体消息,具备好友管理、群组聊天、实时推送、响应式布局等企业级特性。 --- ## 📖 目录 - [核心功能](#-核心功能) - [技术栈](#-技术栈) - [项目架构](#-项目架构) - [快速开始](#-快速开始) - [核心模块说明](#-核心模块说明) - [状态管理](#-状态管理) - [WebSocket 实时通信](#-websocket-实时通信) - [环境配置](#-环境配置) - [构建与部署](#-构建与部署) - [项目特色](#-项目特色) - [后续规划](#-后续规划) - [贡献指南](#-贡献指南) - [许可证](#-许可证) --- ## 🎯 核心功能 ### 1. 用户认证 - 用户登录(用户名/密码 + JWT Token) - 用户注册(昵称、密码、确认密码) - 记住密码功能 - 自动登出与路由守卫 - Token 自动注入请求头 ### 2. 即时通讯 - **WebSocket 实时消息**(基于 SockJS + STOMP) - **消息类型**:文本、图片、文件、语音、系统消息、视频 - 气泡式聊天界面(微信风格) - 消息自动滚动到底部 - 时间分隔线(≥5分钟间隔) - 图片/视频点击预览 - 文件下载 ### 3. 会话管理 - 会话列表(按最后消息时间排序) - 最后一条消息摘要(文本化展示) - 未读消息角标 - 会话搜索 - 点击切换会话 - 会话详情抽屉 ### 4. 消息发送 - 多行文本输入(支持回车发送) - 表情选择器(Emoji) - 图片/视频上传(自动发送) - 文件上传(显示文件名) - **语音录制**:按住说话、上滑取消、实时计时(最长60秒) ### 5. 联系人管理 - 好友列表(分组显示,展开/折叠) - 群组列表 - 联系人/群组详情查看 - 好友数量统计 ### 6. 全局搜索 - 搜索用户 - 搜索会话 - 搜索结果独立窗口 ### 7. 用户界面 - 左侧导航栏(消息、通讯录、发现) - 未读消息角标 - 底部设置菜单(退出登录、设置窗口) - **响应式布局**(桌面端/移动端自适应,@media 768px) - 深色侧边栏 + 浅色内容区(微信配色) - **移动端特色**: - 底部 TabBar(消息、通讯录、发现、我的) - "我的"页面(用户头像、昵称、微信号、功能菜单) - 滑动返回手势支持 - 朋友圈页面(带返回按钮) - 联系人详情页面(带返回按钮) ### 8. WebSocket 高级特性 - **统一订阅管理**:`subscriptionManager.js` 集中管理所有订阅,避免重复订阅 - **自动重连机制**:指数退避策略(1s~30s),刷新页面自动恢复连接 - **订阅恢复**:重连成功后自动恢复所有订阅 - **消息去重**:群聊场景下自动过滤自己发送的消息(避免重复显示) ### 9. 数据持久化 - 登录状态持久化(localStorage) - 会话列表缓存 - 刷新页面保持状态 --- ## 🧰 技术栈 | 类别 | 技术选型 | |-------------------|-------------------------------------------------------------------------| | **核心框架** | Vue 3.5.13 (Composition API + `