# dpwgc_im_go_ws **Repository Path**: dpwgc/dpwgc_im_go_ws ## Basic Information - **Project Name**: dpwgc_im_go_ws - **Description**: 基于Golang Gin整合gorilla的WebSocket即时通讯消息推送模块 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2021-12-06 - **Last Updated**: 2024-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, Gin, WebSocket, MySQL, IM ## README # dpwgc_im.即时通讯系统 `毕业设计` * `项目后端(Java版本)` * `WebSocket消息推送模块(Golang版本)` * `项目前端(uni-app)` * `消息队列` *** ## dpwgc_im_go_ws.基于golang整合gorilla的WebSocket即时通讯消息推送模块 `Golang` `Gin` `Gorilla` `WebSocket` `MySQL` ##### 本模块用于替代 https://gitee.com/dpwgc/dpwgc_im_open 项目中的WebSocket消息推送模块 ##### 使用KapokMQ消息队列 https://gitee.com/dpwgc/kapokmq 将消息分批次插入数据库 ##### 使用WebSocket进行消息广播推送 *** ### 模块架构 ![模块架构](https://img-blog.csdnimg.cn/c332fac8c9854c1496a65e263bbd1130.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZW-5ZW-54yr5ZKq,size_20,color_FFFFFF,t_70,g_se,x_16) ![模块架构](https://img-blog.csdnimg.cn/e207fa1972b349a09f1851f843095a3e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZW-5ZW-54yr5ZKq,size_20,color_FFFFFF,t_70,g_se,x_16) *** ### WebSocket连接 #### 路由 ``` // routers.go r.GET("/IndexLink/:userId", servers.IndexLink) r.GET("/ChatLink/:groupId/:userId", servers.ChatLink) ``` #### 访问路径 * `ws://localhost:port/IndexLink/{userId}` * `ws://localhost:port/ChatLink/{GroupId}/{userId}` #### WebSocket消息发送格式(send) ``` // 前端: that.chatSocketTask.send({ data: msg // msg:要发送的消息,字符串类型 }); ``` *** ### 项目结构 ##### config 配置类 * application.yaml `项目配置文件` * config.go `项目配置文件加载` * webSocketConfig.go `websocket跨域配置` ##### databases 数据库连接 * mysql/mysqlConn `MySQL数据库连接` * redis/redisConn `Redis数据库连接` ##### models 实体类 * mysqlModel.go `mysql数据库表映射模板` * voModel.go `多表关联实体模板` ##### routers 路由 * routers.go `路由配置` ##### servers 服务层 * chatLinkServer `群组内部聊天消息推送` * indexLinkServer `APP首页-用户群组列表推送` ##### utils 工具类 * createToken.go `创建token令牌` * kapokmq.go `消息队列连接` * localTime.go `获取本地时间` * md5Sign.go `md5加密` ##### main.go 主函数 *** ### 使用说明 填写application.yaml内的数据库配置及端口号配置,运行main.go