From 6af8350addeddfb6ccaac23410dc0c815b70bb1c Mon Sep 17 00:00:00 2001 From: taoshihan1991 <630892807@qq.com> Date: Mon, 26 Oct 2020 13:43:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=AE=BF=E5=AE=A2=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/message.go | 27 +++++++++++++++++++++++++++ router/api.go | 7 ++++--- static/js/chat-main.js | 2 +- ws/visitor.go | 2 ++ 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/controller/message.go b/controller/message.go index 2941e52..131c28e 100644 --- a/controller/message.go +++ b/controller/message.go @@ -249,6 +249,33 @@ func SendCloseMessage(c *gin.Context) { "msg": "ok", }) } +func SendCloseMessageV2(c *gin.Context) { + visitorId := c.Query("visitor_id") + if visitorId == "" { + c.JSON(200, gin.H{ + "code": 400, + "msg": "visitor_id不能为空", + }) + return + } + msg := TypeMessage{ + Type: "close", + Data: visitorId, + } + str, _ := json.Marshal(msg) + for _, visitor := range ws.ClientList { + if visitorId == visitor.Id { + if err := visitor.Conn.WriteMessage(websocket.TextMessage, str); err != nil { + visitor.Conn.Close() + delete(ws.ClientList, visitorId) + } + } + } + c.JSON(200, gin.H{ + "code": 200, + "msg": "ok", + }) +} func UploadImg(c *gin.Context) { config := config.CreateConfig() f, err := c.FormFile("imgfile") diff --git a/router/api.go b/router/api.go index 576ead9..0fb0641 100644 --- a/router/api.go +++ b/router/api.go @@ -14,9 +14,11 @@ func InitApiRouter(engine *gin.Engine) { v2 := engine.Group("/2") { //获取消息 - v2.GET("/2/messages", controller.GetMessagesV2) + v2.GET("/messages", controller.GetMessagesV2) //发送单条信息 - v2.POST("/2/message", middleware.Ipblack, controller.SendMessageV2) + v2.POST("/message", middleware.Ipblack, controller.SendMessageV2) + //关闭连接 + v2.GET("/message_close", controller.SendCloseMessageV2) } engine.POST("/check", controller.LoginCheckPass) engine.POST("/check_auth", middleware.JwtApiMiddleware, controller.MainCheckAuth) @@ -31,7 +33,6 @@ func InitApiRouter(engine *gin.Engine) { engine.GET("/message_notice", controller.SendVisitorNotice) //发送单条消息 engine.POST("/message", middleware.Ipblack, controller.SendMessage) - engine.POST("/2/message", middleware.Ipblack, controller.SendMessageV2) //发送关闭消息 engine.GET("/message_close", controller.SendCloseMessage) //上传文件 diff --git a/static/js/chat-main.js b/static/js/chat-main.js index f8a145d..3cc0a3f 100644 --- a/static/js/chat-main.js +++ b/static/js/chat-main.js @@ -378,7 +378,7 @@ var app=new Vue({ let _this=this; $.ajax({ type:"get", - url:"/message_close", + url:"/2/message_close", data:{visitor_id:visitorId}, headers:{ "token":localStorage.getItem("token") diff --git a/ws/visitor.go b/ws/visitor.go index 792b2d2..ea25ffb 100644 --- a/ws/visitor.go +++ b/ws/visitor.go @@ -31,7 +31,9 @@ func NewVisitorServer(c *gin.Context) { Id: vistorInfo.VisitorId, To_id: vistorInfo.ToId, } + go models.UpdateVisitorStatus(vistorInfo.VisitorId, 1) go SendServerJiang(vistorInfo.Name) + AddVisitorToList(user) for {