基于 Go + Redis + MongoDB + MinIO 的高性能聊天工具服务端
·
基于 Go + Redis + MongoDB + MinIO 的高性能聊天工具服务端
项目简介
wxchat 是一个基于 Go 语言开发的高性能聊天工具服务端,支持实时消息推送、好友管理、群聊、AI 对话等核心功能。采用 WebSocket 实现双向通信,Redis 缓存热点数据,MongoDB 存储消息记录,MinIO 提供对象存储服务。
💡 技术栈:Go 1.25 + Gin + WebSocket + Redis + MongoDB + MinIO + JWT + Ollama
群聊可以添加多个AI助手
任务聊天,可以直接叫AI在指定目录下些项目
系统架构
核心功能
1️⃣ 基础聊天
- ✅ 用户登录/注册(bcrypt 密码加密)
- ✅ 文字/表情/图片/语音/视频消息
- ✅ 实时消息推送(WebSocket)
- ✅ 聊天记录查询与分页
- ✅ 消息撤回(2 分钟内)
- ✅ 已读回执
2️⃣ 社交功能
- ✅ 好友管理
- ✅ 群聊管理(创建/邀请/踢出/转移管理员)
- ✅ 用户在线状态
3️⃣ 文件存储
- ✅ MinIO 对象存储
- ✅ 图片/语音/视频上传
- ✅ HTTP 访问 URL 返回
4️⃣ AI 对话
- ✅ 添加 AI 好友(支持 Ollama/OpenAI/自定义)
- ✅ 配置 AI 服务地址和 Token
- ✅ 获取模型列表
- ✅ AI 聊天对话
用户互动流程
技术亮点
| 特性 | 实现方式 |
|---|---|
| 🔐 数据安全 | 密码 bcrypt 加密 + 消息 AES-256-GCM 加密 |
| ⚡ 高性能 | Redis 缓存热点数据 + WebSocket 实时推送 |
| 💾 持久化 | MongoDB 存储消息记录 |
| 📁 文件存储 | MinIO 对象存储,返回 HTTP 访问 URL |
| 🤖 AI 集成 | 支持 Ollama 本地 AI 模型 |
| 🌐 多端支持 | Web/桌面 (Wails)/移动端 (UniApp) |
客户端支持
- 🖥️ 桌面端:Wails 构建,原生体验
- 🌐 Web 端:浏览器直接访问
- 📱 移动端:UniApp 构建,支持 APP 打包
下一步计划
- 消息过期清理
- 用户头像/昵称管理
- 移动端优化
- 更多 AI 功能集成
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)