Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

一款基于 Spring 全家桶构建的高性能即时通讯(IM)平台,支持单聊/群聊/ai机器人实时消息、分布式部署与灵活扩展。

Notifications You must be signed in to change notification settings

w3777/xigua-cloud

Open more actions menu

Repository files navigation

🍉Xigua-Cloud 项目介绍

📄 开源协议 本项目仅供学习交流使用,❗禁止任何形式的商业用途❗ 。如需商用请联系作者获得授权

🔹 功能亮点 【💬 实时聊天】|【👥 好友管理】|【🟢 在线状态】|【🔄 消息失败重发】|【📖 已读未读】|【💾 消息持久化】|【📧 邮箱验证】

🔧 技术栈 【☕ JDK 17 + 🌱 Spring Boot 3】|【☁️ Spring Cloud Alibaba】|【🔄 WebSocket】|【📡 Dubbo】|【❄️ 雪花算法】

项目概述

Xigua-Cloud 是一款网页版即时通讯应用,功能对标微信。它支持用户注册登录、邮箱验证、添加好友、处理好友验证请求、实时好友聊天等功能。同时,项目实现了消息持久化存储,能实时显示用户在线/离线状态,为用户提供流畅的在线聊天体验。

目前项目仍在持续开发中,更多功能(如群聊、音视频对话、搜索等)将在后续版本中陆续推出,欢迎持续关注和体验。

🔗前端仓库地址:https://github.com/w3777/xigua-chat

🌐 体验地址

⚠️ 注意事项:

由于个人精力有限,作者不得不做出一个艰难决定,即日起本项目将停止免费维护。为了确保项目能够持续发展,后续更新与支持将转为付费模式,所获费用将用于升级服务器配置以提升使用体验、保障项目持续迭代与长期维护,并提供更完善的技术支持服务 ➡️ 联系作者获取完整版

  1. 当前项目部署在小型服务器上,资源有限,无法承受高并发访问或大流量压力。
  2. 请避免进行压力测试或频繁刷新/点击,体验功能为主。
  3. 若希望获得更流畅的体验,建议自行拉取项目源码并本地部署运行。

🔑 体验账号

账号类型 用户名 密码
普通用户 admin 123456
普通用户 大象爱吃西瓜 123456

🧰技术栈

本项目采用了一系列先进的技术和框架,确保系统的高性能、可扩展性和易维护性,具体如下:

类别 技术/组件 描述说明
编程语言 JDK 17 Java 语言,采用长期支持(LTS)版本
应用框架 Spring Boot 3.2.5 简化配置、快速开发的企业级框架
微服务架构 Spring Cloud Alibaba(2023.0.1.0) 支持服务注册、配置中心、服务治理等微服务能力
API 网关 Spring Cloud Gateway(4.1.2) 统一网关入口,支持路由、限流、鉴权等
注册配置中心 Nacos(2.4.3 / 2.3.2) 动态服务发现和分布式配置管理
RPC 通信框架 Dubbo(3.3.0) 高性能分布式服务通信框架
数据库 MySQL 8 主流关系型数据库,支持 JSON、窗口函数等
数据访问框架 MyBatis(3.0.3)
MyBatis-Plus(3.5.9)
ORM 框架,简化数据库操作,提高开发效率
缓存组件 Redis(5 / 3.2.5) 提供缓存、消息队列、分布式锁等功能
消息队列 Kafka(3.9.0 / 3.1.4) 提供消息队列功能,用于异步、削峰
文件存储 MinIO(2025-02-07T23-21-09Z / 8.5.17) 分布式对象存储,兼容 S3 协议,用于文件上传
实时通信 分布式 WebSocket 实现用户聊天的实时消息推送
唯一 ID 生成 雪花算法(Snowflake) 分布式唯一 ID 生成策略,防止重复冲突
接口文档生成 Swagger (OpenAPI) 自动生成 RESTful 接口文档,已集成到网关,支持可视化测试

📢 开发者交流群
遇到问题或想参与讨论?欢迎扫码加入:


(扫码加入技术讨论)

🛠️配置说明

  • db/ 文件夹:数据库建表 SQL
  • nacos/ 文件夹:Nacos 配置文件,包含各服务的配置项
  • 统一接口文档地址:http://localhost:8090/swagger-ui/index.html (网关统一访问各模块swagger)

⚙️应用配置

  1. 需要qq邮箱开启SMTP服务并获取授权码
  2. https://www.juhe.cn/ (天地聚合平台),申请ip查询、天气查询接口key(每天50次免费调用)

🗂️ 项目结构

为简化整体架构设计,目前项目仅包含 xigua-gatewayxigua-centerxigua-client 三个启动类模块,未进一步拆分为如 ossssosearch 等子模块,以便于快速开发和统一维护。

xigua-cloud (Root Project)
├── 基础设施层
│   ├── nacos/                # 服务注册与配置中心配置
│   ├── db/                   # 数据库表定义
│   └── demo-test/            # 集成测试环境
│
├── 核心业务层
│   ├── xigua-api/            # 业务聚合API服务(BFF层)
│   ├── xigua-center/         # 用户长连接管理中心(服务端)
│   └── xigua-client/         # 用户客户端业务
│
├── 通用组件层
│   ├── xigua-common/         # 基础工具包
│   ├── xigua-common-core/    # 核心工具类(含JWT、缓存抽象等)
│   ├── xigua-common-dubbo/   # dubbo过滤器扩展传递用户信息、链路id、异常封装
│   ├── xigua-common-mq/      # 消息队列抽象层、可多种实现(目前支持kafka)
│   ├── xigua-common-mybatis/ # Mybatis/MyBatis-Plus增强组件
│   └── xigua-common-sequence # 分布式ID生成服务(雪花算法实现)
│
├── 领域模型层
│   └── xigua-domain/         # (实体、枚举、dto、vo等)
│
├── 服务接入层
│   └── xigua-gateway/        # 基于Spring Cloud Gateway的路由网关
│       ├── swagger/           # 网关集成swagger
│       └── websocket/          # ws配置网关

🎬 功能演示

📝 注册登录

用户可通过邮箱注册账号,系统将发送验证邮件,验证通过后即可登录系统。

👥 添加好友

支持通过用户名或邮箱搜索用户,发送好友请求;对方可选择接受或拒绝。

💬 实时聊天

好友之间可进行实时消息交流,聊天内容将即时显示并持久化保存,便于历史查阅。

🟢 在线状态

系统实时展示用户的在线/离线状态,便于好友查看彼此是否在线。

【🔄 消息失败重发】

消息发送失败,可重新发送

【📖 已读/未读】

支持实时消息的已读,以及留言消息打开聊天框口已读,历史消息滑动已读。

实时消息已读

打开窗口已读

滑动窗口已读

联系作者

如需获取完整版或技术支持,请通过以下方式联系

添加时请备注"项目咨询",感谢理解

关注⭐️

🔍 欢迎体验使用 Xigua-Cloud! 项目仍在持续优化中,若您在使用过程中发现任何问题或有改进建议,欢迎提交 Issue 或 PR,我们非常感谢您的反馈与支持 ❤️

About

一款基于 Spring 全家桶构建的高性能即时通讯(IM)平台,支持单聊/群聊/ai机器人实时消息、分布式部署与灵活扩展。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.