项目简介
本项目是一个基于Go语言和React的实时聊天系统,支持多种消息类型(文本、图片、文件、语音、视频等)的发送与接收,具备群聊、单人聊天、好友管理、屏幕共享、视频通话等功能。系统采用WebSocket进行实时通信,还支持通过Kafka进行分布式部署以实现水平扩展。
项目的主要特性和功能
- 用户管理:支持用户注册、登录、修改头像。
- 实时聊天:支持单人及群聊,可发送文本、图片、文件、语音、视频等消息。
- 好友与群组管理:能添加好友、创建和加入群组,查看好友列表与群组成员。
- 多媒体功能:支持屏幕共享和基于WebRTC的P2P视频通话。
- 分布式部署:通过Kafka实现全局消息队列,支持系统水平扩展。
- 前端技术栈:基于React和Ant Design构建界面,使用WebSocket实时通信。
- 后端技术栈:基于Go语言,运用Gin框架、gorm ORM、WebSocket、Kafka等技术。
安装使用步骤
1. 环境准备
- 安装Go语言环境。
- 安装并启动MySQL数据库。
- 安装Node.js和npm用于前端开发。
2. 后端配置与启动
- 进入后端代码目录:
bash cd go-chat
- 安装依赖:
bash go mod download
- 数据库配置:
- 在MySQL中创建数据库:
sql CREATE DATABASE chat;
- 修改
config.toml
文件中的数据库连接信息。 - 创建数据库表:执行
chat.sql
中的SQL语句。 - 启动后端服务:
bash go run cmd/main.go
3. 前端配置与启动
- 进入前端代码目录:
bash cd go-chat-web
- 安装依赖:
bash npm install
- 修改后端地址:如需修改,修改
src/chat/common/param/Params.jsx
中的IP_PORT
。 - 启动前端服务:
bash npm start
- 访问系统:打开浏览器,访问
http://127.0.0.1:3000/login
。
4. 分布式部署(可选)
- 构建Docker镜像:进入
deployments/docker
目录,执行:bash docker build -t konenet/gochat:1.0 .
- 配置Kafka:修改
config.toml
文件,启用Kafka消息队列。 - 启动服务:使用
docker-compose
启动:bash docker-compose up -d
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】