# im **Repository Path**: wukong-yu/im ## Basic Information - **Project Name**: im - **Description**: go实现聊天对话 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-01-13 - **Last Updated**: 2023-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # im #### 介绍 使用go语言实现即时通讯,采用 Gin + Websocket + Redis技术实现用户私聊、群聊以及系统广播等功能 #### 使用说明 1. git clone https://gitee.com/wukong-yu/im.git 2. go mod tidy 3. go run main.go #### 使用操作 ##### 登录接口 url: localhost:9000/v1/login?username=admin&password=admin url: localhost:9000/v1/login?username=admin1&password=admin 响应: ``` { "code": 200, "data": { "user": { "ID": 7, "CreatedAt": "2022-12-26T17:51:48.575+08:00", "UpdatedAt": "2022-12-26T17:51:48.575+08:00", "DeletedAt": null, "name": "user4", "password": "a66abb5684c45962d887564f08346e8d", "Phone": "13289316602", "Email": "894139169@qq.com", "Identity": "", "ClientIp": "", "ClientPort": "", "login_time": "0001-01-01T00:00:00Z", "heartbeat_time": "0001-01-01T00:00:00Z", "logout_time": "0001-01-01T00:00:00Z", "Islogout": false, "DeviceInfo": "", "Salt": "123456" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6NywiTmFtZSI6InVzZXI0IiwiZXhwIjoxNjczNjczNTA4LCJpYXQiOjE2NzM2NzE3MDh9.7Pb90QaBDNwULqEu5b2e0uGUvo6CUBa6wJfX2p9ojqE", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6NywiTmFtZSI6InVzZXI0IiwiZXhwIjoxNjczNjc1MzA4LCJpYXQiOjE2NzM2NzE3MDh9.jtS4iMcgw1758cVr1vQHxcsSWkBsyXfWMRzeYi0OLiU" }, "msg": "登录成功" } ``` ##### Websocket连接 url:localhost:9000/v1/ws header头中添加token属性 Request Body: 发送消息格式:私聊 ``` { "fromUserId":3, // 消息发送者 "targetUserId":5, // 消息接收者 "content":"测试", // 消息内容 "type":1, // 聊天类型:1.私聊,2.群聊,3.广播 "media":"1", // 消息类型:1.文字,2.图片,等 } ``` 发送消息格式:群聊 ``` { "fromUserId":3, // 消息发送者 "content":"测试", // 消息内容 "type":2, // 聊天类型:1.私聊,2.群聊,3.广播 "media":"1", // 消息类型:1.文字,2.图片,等 "groupId:1 // 群聊Id } ``` 发送消息格式:广播 ``` { "content":"测试", // 消息内容 "type":3, // 聊天类型:1.私聊,2.群聊,3.广播 "media":"1", // 消息类型:1.文字,2.图片,等 } ``` 3. 提交代码 4. 新建 Pull Request #### 技术说明 1. [go-redis/redis/v9](https://pkg.go.dev/github.com/go-redis/redis/v9) 2. [go-sql-driver/mysql](https://pkg.go.dev/github.com/go-sql-driver/mysql) 3. [gorilla/websocket](https://pkg.go.dev/github.com/gorilla/websocket) #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)