Skip to content

gin + websocket 即时通讯 | go golang chat im 聊天 聊天室 | 仿微信即时通讯全栈学习项目

License

Notifications You must be signed in to change notification settings

binbinly/gin-chat

Repository files navigation

友情提示

快速体验项目

app

项目介绍

gin-chat 是一套仿微信ui的即时通讯全栈学习项目,项目UI出自 uni-app实战仿微信app开发

  • 主要功能点如下 功能点
  • 项目截图 image

📗 目录结构

消息投递

userA -> http api -> logic -> websocket -> userB

消息通过http接口发送,逻辑处理转发,找到目标的websocket连接id,投递消息

后端技术

  • http框架使用 Gin
  • websocket使用 Websocket
  • 数据库组件 GORM mysql连接
  • redis组件 go-redis redis连接
  • 命令行工具 Cobra
  • 文档使用 Swagger 生成
  • 配置文件解析库 Viper
  • 使用 JWT 进行身份鉴权认证
  • 校验器使用 validator 也是 Gin 框架默认的校验器
  • 包管理工具 Go Modules
  • 使用 GolangCI-lint 进行代码检测
  • 使用 make 来管理 Go 工程

前端技术

开发环境

工具 版本号 下载
golang 1.20 https://golang.org/dl/
nodejs 18.15 https://nodejs.org/zh-cn/download/
mysql 5.7 https://www.mysql.com/
redis 6.0 https://redis.io/download
nginx 1.19 http://nginx.org/en/download.html

项目部署

1,手动编译部署

TIPS: 需要本地安装 MySQL and Redis

# 下载安装
git clone https://github.com/binbinly/gin-chat

# 进入项目目录
cd gin-chat

# 编译
make build

# 修改 dbs redis 配置
cd build/configs

# 初始化数据结构,填充表情包
make init

# 运行
make run

2.Docker部署

docker安装文档

cd gin-chat
# 1. build image: 
docker build -t chat:latest -f Dockerfile .
# 2. start: 
docker run --rm -it -p 9050:9050 -p 9060:9060 chat:latest server
# 启动时设置 --rm 选项,这样在容器退出时就能够自动清理容器内部的文件系统

常用命令

  • make help 查看帮助
  • make init 初始化数据结构,并填充数据库表情包数据
  • make build 编译项目
  • make run 运行项目
  • make test 运行测试用例
  • make clean 清除编译文件
  • make doc 生成接口文档
  • make lint 代码检查
  • make graph 生成交互式的可视化Go程序调用图
  • make docker 生成docker镜像,确保已安装docker

📝 接口文档

TIPS: 只有本地环境开启了文档

AI辅助

storage

其他

About

gin + websocket 即时通讯 | go golang chat im 聊天 聊天室 | 仿微信即时通讯全栈学习项目

Resources

License

Stars

Watchers

Forks

Packages

No packages published