该项目参考大佬 ice_moss 的《从0到1搭建一个IM项目》系列进行实现,在此记录下整个项目的开发过程,代码地址:
https://github.com/tltre/HiChat
项目概览
该项目使用go语言实现一个简单的即时聊天(IM)后端项目,提供的API包括:
- 用户登录、注册、修改用户信息、注销账号
- 获取好友列表、添加好友、修改好友备注、删除好友
- 创建群聊、搜索群聊、加入群聊、获取群聊列表、退出群聊、删除群聊
- 单聊、群聊
技术栈
Go、Gin、Websocket、UDP、Mysql、Redis、Viper、Gorm、Zap、Md5、Jwt
系统架构
通信流程
项目文件结构
HiChat
├── common
│
├── config
│
├── dao
│
├── global // Connection pool
│
├── initialize
│
├── middlewear
│
├── models // DB Table design
│
├── router
│
├── service //api
│
├── test
│
├── main.go
├── go.mod
├── go.sum