Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xfstart07/gim
golang implement im server
https://github.com/xfstart07/gim
docker golang grpc im protobuf3 redis
Last synced: 10 days ago
JSON representation
golang implement im server
- Host: GitHub
- URL: https://github.com/xfstart07/gim
- Owner: xfstart07
- Created: 2019-09-10T10:03:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-15T02:22:56.000Z (almost 2 years ago)
- Last Synced: 2024-11-16T03:41:47.587Z (2 months ago)
- Topics: docker, golang, grpc, im, protobuf3, redis
- Language: Go
- Size: 7.91 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# GIM
Golang 实现 的 IM 系统。
## TODO LIST
第一阶段:
- [x] 1. 通过api接口实现用户的注册,并将信息存入 redis
- [x] 2. 服务端启动 http,grpc 服务,client 能连接上
- [x] 3. 用户可以通过命令行进行实现私聊,群聊
- [x] 4. 与服务端连接断开后,用户的下线功能
- [x] 5. 格式化客户端信息打印
- [x] 6. 聊天信息存储文件中。
- [x] 7. 接入 etcd 做客户端和服务端的服务发现。
- [x] 8. 完善客户端重连和服务端连接下线功能
- [x] 9. 通过 redis 的 pubsub 分发消息
- [x] 10. 重构代码,将对象接口化,合理化
- [x] 11. 用户退出,注销
- [x] 12. 客户端获取所有用户列表
- [ ] 13. 添加测试用例## protobuf
生成 GRPC 接口描述文件
```bash
make gen_proto
```## 消息
### 注册
向服务器注册账户
```bash
curl -X POST --header 'Content-Type: application/json' -d '{"user_name": "leon"}' http://localhost:8081/registerAccount
```返回信息
```json
{"code":"0","message":"OK","data":{"user_id":1567996897857327000,"user_name":"leon"}}
```## 使用
服务端启动
```bash
make run_server
```客户端启动
```bash
make run_client
```要启动多个客户端需要修改 `config/client.ini` 的用户信息
## 构建
```bash
make build_server
```## 部署
### 配置 server
请查看 [deployment/nginx/gim.conf](deployment/nginx/gim.conf) 文件.