基于 Go + Redis + MongoDB + MinIO 的高性能聊天工具服务端

项目简介

wxchat 是一个基于 Go 语言开发的高性能聊天工具服务端,支持实时消息推送、好友管理、群聊、AI 对话等核心功能。采用 WebSocket 实现双向通信,Redis 缓存热点数据,MongoDB 存储消息记录,MinIO 提供对象存储服务。

💡 技术栈:Go 1.25 + Gin + WebSocket + Redis + MongoDB + MinIO + JWT + Ollama


在这里插入图片描述群聊可以添加多个AI助手
在这里插入图片描述任务聊天,可以直接叫AI在指定目录下些项目


系统架构

数据层

服务层

客户端层

Web 客户端

Gin Web 服务器

移动端 UniApp

桌面端 Wails

JWT 认证中间件

WebSocket Hub

HTTP API

Redis
缓存/在线状态

MongoDB
消息/群聊数据

MinIO
文件存储

Ollama
AI 服务


核心功能

1️⃣ 基础聊天

  • ✅ 用户登录/注册(bcrypt 密码加密)
  • ✅ 文字/表情/图片/语音/视频消息
  • ✅ 实时消息推送(WebSocket)
  • ✅ 聊天记录查询与分页
  • ✅ 消息撤回(2 分钟内)
  • ✅ 已读回执

2️⃣ 社交功能

  • ✅ 好友管理
  • ✅ 群聊管理(创建/邀请/踢出/转移管理员)
  • ✅ 用户在线状态

3️⃣ 文件存储

  • ✅ MinIO 对象存储
  • ✅ 图片/语音/视频上传
  • ✅ HTTP 访问 URL 返回

4️⃣ AI 对话

  • ✅ 添加 AI 好友(支持 Ollama/OpenAI/自定义)
  • ✅ 配置 AI 服务地址和 Token
  • ✅ 获取模型列表
  • ✅ AI 聊天对话


用户互动流程

用户注册

登录获取 Token

选择功能

私聊

群聊

AI 对话

建立 WebSocket 连接

发送消息

实时推送

创建/加入群聊

群消息发送

群成员推送

添加 AI 好友

配置 AI 服务

AI 对话



技术亮点

特性 实现方式
🔐 数据安全 密码 bcrypt 加密 + 消息 AES-256-GCM 加密
⚡ 高性能 Redis 缓存热点数据 + WebSocket 实时推送
💾 持久化 MongoDB 存储消息记录
📁 文件存储 MinIO 对象存储,返回 HTTP 访问 URL
🤖 AI 集成 支持 Ollama 本地 AI 模型
🌐 多端支持 Web/桌面 (Wails)/移动端 (UniApp)

客户端支持

  • 🖥️ 桌面端:Wails 构建,原生体验
  • 🌐 Web 端:浏览器直接访问
  • 📱 移动端:UniApp 构建,支持 APP 打包

下一步计划

  • 消息过期清理
  • 用户头像/昵称管理
  • 移动端优化
  • 更多 AI 功能集成

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐