快速体验项目:
gin-chat 是一套仿微信ui的即时通讯全栈学习项目,项目UI出自 uni-app实战仿微信app开发
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 工程
- 移动端 Vue 组件库 vant
- 脚手架 vue-cli4 vant rem 移动端框架方案
- 表情包 ChineseBQB
| 工具 | 版本号 | 下载 |
|---|---|---|
| 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 |
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 runcd 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: 只有本地环境开启了文档
- redis: upstash
- mysql: planetscale
- postgres: supabase, neon
- 编码规范: Uber Go 语言编码规范


