littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于Go语言和React的实时聊天系统

项目简介

本项目是一个基于Go语言和React的实时聊天系统,支持多种消息类型(文本、图片、文件、语音、视频等)的发送与接收,具备群聊、单人聊天、好友管理、屏幕共享、视频通话等功能。系统采用WebSocket进行实时通信,还支持通过Kafka进行分布式部署以实现水平扩展。

项目的主要特性和功能

  1. 用户管理:支持用户注册、登录、修改头像。
  2. 实时聊天:支持单人及群聊,可发送文本、图片、文件、语音、视频等消息。
  3. 好友与群组管理:能添加好友、创建和加入群组,查看好友列表与群组成员。
  4. 多媒体功能:支持屏幕共享和基于WebRTC的P2P视频通话。
  5. 分布式部署:通过Kafka实现全局消息队列,支持系统水平扩展。
  6. 前端技术栈:基于React和Ant Design构建界面,使用WebSocket实时通信。
  7. 后端技术栈:基于Go语言,运用Gin框架、gorm ORM、WebSocket、Kafka等技术。

安装使用步骤

1. 环境准备

  • 安装Go语言环境。
  • 安装并启动MySQL数据库。
  • 安装Node.js和npm用于前端开发。

2. 后端配置与启动

  1. 进入后端代码目录: bash cd go-chat
  2. 安装依赖: bash go mod download
  3. 数据库配置:
  4. 在MySQL中创建数据库: sql CREATE DATABASE chat;
  5. 修改config.toml文件中的数据库连接信息。
  6. 创建数据库表:执行chat.sql中的SQL语句。
  7. 启动后端服务: bash go run cmd/main.go

3. 前端配置与启动

  1. 进入前端代码目录: bash cd go-chat-web
  2. 安装依赖: bash npm install
  3. 修改后端地址:如需修改,修改src/chat/common/param/Params.jsx中的IP_PORT
  4. 启动前端服务: bash npm start
  5. 访问系统:打开浏览器,访问http://127.0.0.1:3000/login

4. 分布式部署(可选)

  1. 构建Docker镜像:进入deployments/docker目录,执行: bash docker build -t konenet/gochat:1.0 .
  2. 配置Kafka:修改config.toml文件,启用Kafka消息队列。
  3. 启动服务:使用docker-compose启动: bash docker-compose up -d

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】