# HmChat
**Repository Path**: wengxiulin/hmchat
## Basic Information
- **Project Name**: HmChat
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-20
- **Last Updated**: 2025-06-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HmChat
#### 介绍
{**以下是 Gitee 平台说明,您可以替换此简介**
Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
#### 软件架构
软件架构说明
### 技术栈总结表
| 模块 | 推荐技术 | 参考案例 |
| ---------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------- |
| 前端框架 | Vue3 + Nuxt3、Tauri、React Native | JiwuChat |
| 实时通信 | Socket.IO、Kafka、WebRTC | Vue-Chat |
| 数据库 | MongoDB(主)、Redis(缓存) | 技术栈汇总 |
| AI集成 | 讯飞星火API、HMS Core、LoRA微调 | HMS Core |
| 部署运维 | Docker、AWS Fargate、GitHub Actions | Fargate.chat |
| 安全 | JWT、HTTPS、AES | 环信技术指南 |
| **功能模块** | **功能描述** | **状态** |
| :----------------------------------------------------------- | :----------------------------------------------------------- | :--------------------------------------------------- |
| 用户模块 | 支持账号、手机号和邮箱的登录和注册 | ✔ |
| 消息模块 | 支持文本、图片、文件、语音、@用户、撤回、删除等多种消息类型的实时聊天功能 | ✔ |
| 会话模块 | 支持群聊、私聊多种聊天模式,群主、管理员、普通用户等角色 | ✔ |
| 联系人模块 | 支持查看、添加、删除联系人 | ✔ |
| 系统版本模块 | 支持应用的自动更新、查看版本公告等 | ✔ |
| 账号与安全模块 | 提供账号登录、修改密码、账号管理、设备安全、账号上下线等功能 | ✔ |
| AI模块 | 群聊支持多种AI聊天机器人,如`DeepSeek`
、`讯飞星火`
、`KimiAI`
等 | ✔ |
| 智能客服模块 | AI购物聊天功能,提供`极物圈`
下的商品推荐 | ✔ |
| 文件下载管理模块 | 支持文件本地下载、打开、删除等功能 | ✔ |
| 语音视频模块 | 基于WebRTC的共享屏幕、语音、视频聊天功能 | ✔ |
| 其他功能 | 全局夜间模式、字体、自定义下载路径、多系统支持、定制化设置等 | ✔ |
##### 前端
~~~shell
hmchat-frontend/
├── src/
│ ├── assets/ # 静态资源
│ │ ├── themes/ # 主题文件(深色/浅色CSS变量)
│ │ └── icons/ # SVG图标库
│ ├── components/ # 通用组件
│ │ ├── core/ # 核心组件库
│ │ │ ├── ChatWindow.vue # 聊天主界面(消息列表+输入框)
│ │ │ ├── VideoCallModal.vue # 音视频通话弹窗
│ │ │ └── AIChatBubble.vue # AI机器人对话气泡
│ │ └── features/ # 功能模块组件
│ │ ├── ai-shopping/ # AI购物相关组件
│ │ └── screen-share/ # 屏幕共享组件
│ ├── composables/ # Composition API逻辑
│ │ ├── chat/
│ │ │ ├── useSocket.ts # WebSocket连接管理
│ │ │ └── useMessage.ts # 消息发送/接收逻辑
│ │ ├── ai/
│ │ │ ├── useSparkAI.ts # 讯飞星火API封装
│ │ │ └── useShoppingAI.ts # 商品识别逻辑
│ │ └── webrtc/
│ │ ├── useVideoCall.ts # 音视频通话逻辑
│ │ └── useScreenShare.ts # 屏幕共享逻辑
│ ├── stores/ # Pinia状态管理
│ │ ├── auth.store.ts # 用户认证状态
│ │ ├── chat.store.ts # 聊天消息状态
│ │ └── settings.store.ts # 应用设置(主题/通知等)
│ ├── pages/ # Nuxt3页面路由
│ │ ├── login.vue # 登录页
│ │ ├── chat/
│ │ │ ├── [roomId].vue # 动态聊天室页面
│ │ │ └── ai-shopping.vue # AI购物页面
│ │ └── settings/ # 设置子路由
│ ├── layouts/ # 全局布局
│ │ └── default.vue # 包含导航栏和WS连接监听
│ ├── plugins/ # 第三方插件
│ │ ├── socket.io.ts # Socket.IO客户端初始化
│ │ └── tauri.ts # Tauri API封装(文件读写等)
│ └── utils/
│ ├── crypto.ts # 加密工具(AES)
│ └── date-formatter.ts # 时间格式化
├── src-tauri/ # Tauri桌面端配置
│ ├── icons/ # 应用图标(多尺寸)
│ ├── Cargo.toml # Rust依赖
│ └── tauri.conf.json # 窗口配置/权限设置
├── public/ # 公共资源
├── nuxt.config.ts # SSR/模块配置
├── tailwind.config.js # 主题颜色扩展
└── package.json
~~~
##### 后端
~~~shell
hmchat-backend/
├── src/main/
│ ├── java/com/hmchat/
│ │ ├── application/ # 主应用入口
│ │ │ └── HmChatApplication.java
│ │ ├── config/
│ │ │ ├── WebSecurityConfig.java # Spring Security配置
│ │ │ ├── WebSocketConfig.java # STOMP协议配置
│ │ │ └── MongoConfig.java # 多数据源配置
│ │ ├── controller/
│ │ │ ├── api/ # REST API
│ │ │ │ ├── AuthController.java # 登录/注册
│ │ │ │ └── UserController.java # 用户管理
│ │ │ └── ws/ # WebSocket端点
│ │ │ ├── ChatWebSocket.java # 聊天消息处理
│ │ │ └── WebRTCSignaling.java # 信令服务器
│ │ ├── service/
│ │ │ ├── impl/ # 服务实现类
│ │ │ │ ├── ChatServiceImpl.java
│ │ │ │ └── AIServiceImpl.java
│ │ │ └── AI/ # AI服务模块
│ │ │ ├── SparkAIService.java # 讯飞星火集成
│ │ │ └── ShoppingAIService.java # 商品识别服务
│ │ ├── repository/ # 数据访问层
│ │ │ ├── UserRepository.java # Spring Data MongoDB
│ │ │ └── MessageRepository.java
│ │ ├── model/ # 数据模型
│ │ │ ├── dto/ # DTO类
│ │ │ │ ├── ChatMessageDTO.java
│ │ │ │ └── AIRequest.java
│ │ │ ├── entity/ # 数据库实体
│ │ │ │ ├── User.java
│ │ │ │ └── Message.java
│ │ │ └── enums/ # 枚举类
│ │ │ └── MessageType.java # 文本/图片/文件等
│ │ ├── exception/ # 自定义异常
│ │ │ └── GlobalExceptionHandler.java # 全局异常处理
│ │ └── utils/
│ │ ├── JwtUtils.java # JWT工具
│ │ ├── RedisUtils.java # Redis客户端
│ │ └── WebRTCUtils.java # 信令服务器工具
│ ├── resources/
│ │ ├── application.yml # 主配置文件
│ │ ├── static/ # 静态资源(可选)
│ │ └── templates/ # 邮件模板等
├── src/test/ # 单元测试
│ └── java/com/hmchat/
│ └── service/ChatServiceTest.java
├── docker/ # 容器化配置
│ ├── Dockerfile # Java应用镜像
│ └── docker-compose.yml # 依赖服务(MongoDB+Redis+Kafka)
├── mvnw # Maven Wrapper
├── pom.xml # Maven依赖(含Spring Boot+WebSocket+JWT)
└── .gitignore
~~~
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)