From 5306f81ea68248c5e68b27b1ed87716a19872307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E5=A3=AB=E6=B6=B5?= <630892807@qq.com> Date: Thu, 18 Feb 2021 23:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/chat.go | 200 ++++++++++++++++++++++----------------------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/controller/chat.go b/controller/chat.go index fc02793..5977d81 100644 --- a/controller/chat.go +++ b/controller/chat.go @@ -239,103 +239,103 @@ func sendPingOnlineUsers() { } //后端广播发送消息 -func singleBroadcaster() { - for { - message := <-message - //log.Println("debug:",message) - - var typeMsg TypeMessage - var clientMsg ClientMessage - json.Unmarshal(message.content, &typeMsg) - conn := message.conn - if typeMsg.Type == nil || typeMsg.Data == nil { - continue - } - msgType := typeMsg.Type.(string) - msgData, _ := json.Marshal(typeMsg.Data) - switch msgType { - //用户上线 - case "userInit": - json.Unmarshal(msgData, &clientMsg) - vistorInfo := models.FindVisitorByVistorId(clientMsg.VisitorId) - if vistorInfo.VisitorId == "" { - SendNotice("访客数据不存在", conn) - continue - } - //用户id对应的连接 - user := &vistor{ - conn: conn, - name: clientMsg.Name, - avator: clientMsg.Avator, - id: clientMsg.VisitorId, - to_id: clientMsg.ToId, - } - clientList[clientMsg.VisitorId] = user - //插入数据表 - models.UpdateVisitor(clientMsg.VisitorId, 1, clientMsg.ClientIp, message.c.ClientIP(), clientMsg.Refer) - //models.CreateVisitor(clientMsg.Name,clientMsg.Avator,message.c.ClientIP(),clientMsg.ToId,clientMsg.VisitorId,clientMsg.Refer,clientMsg.City,clientMsg.ClientIp) - userInfo := make(map[string]string) - userInfo["uid"] = user.id - userInfo["username"] = user.name - userInfo["avator"] = user.avator - msg := TypeMessage{ - Type: "userOnline", - Data: userInfo, - } - str, _ := json.Marshal(msg) - - //新版 - mKefuConns := ws.KefuList[user.to_id] - if mKefuConns != nil { - for _, kefu := range mKefuConns { - kefu.Conn.WriteMessage(websocket.TextMessage, str) - } - } - - //兼容旧版 - kefuConns := kefuList[user.to_id] - if kefuConns != nil { - for k, kefuConn := range kefuConns { - log.Println(k, "xxxxxxxx") - kefuConn.WriteMessage(websocket.TextMessage, str) - } - } - - //客户上线发微信通知 - go SendServerJiang(userInfo["username"]) - sendPingOnlineUsers() - //客服上线 - case "kfOnline": - json.Unmarshal(msgData, &clientMsg) - //客服id对应的连接 - var newKefuConns = []*websocket.Conn{conn} - kefuConns := kefuList[clientMsg.Id] - if kefuConns != nil { - newKefuConns = append(newKefuConns, kefuConns...) - } - log.Println(newKefuConns) - kefuList[clientMsg.Id] = newKefuConns - //发送给客户 - if len(clientList) == 0 { - continue - } - sendPingOnlineUsers() - //客服接手 - case "kfConnect": - json.Unmarshal(msgData, &clientMsg) - visitor, ok := clientList[clientMsg.ToId] - if visitor == nil || !ok { - continue - } - SendKefuOnline(clientMsg, visitor.conn) - //心跳 - case "ping": - msg := TypeMessage{ - Type: "pong", - } - str, _ := json.Marshal(msg) - conn.WriteMessage(websocket.TextMessage, str) - } - - } -} +//func singleBroadcaster() { +// for { +// message := <-message +// //log.Println("debug:",message) +// +// var typeMsg TypeMessage +// var clientMsg ClientMessage +// json.Unmarshal(message.content, &typeMsg) +// conn := message.conn +// if typeMsg.Type == nil || typeMsg.Data == nil { +// continue +// } +// msgType := typeMsg.Type.(string) +// msgData, _ := json.Marshal(typeMsg.Data) +// switch msgType { +// //用户上线 +// case "userInit": +// json.Unmarshal(msgData, &clientMsg) +// vistorInfo := models.FindVisitorByVistorId(clientMsg.VisitorId) +// if vistorInfo.VisitorId == "" { +// SendNotice("访客数据不存在", conn) +// continue +// } +// //用户id对应的连接 +// user := &vistor{ +// conn: conn, +// name: clientMsg.Name, +// avator: clientMsg.Avator, +// id: clientMsg.VisitorId, +// to_id: clientMsg.ToId, +// } +// clientList[clientMsg.VisitorId] = user +// //插入数据表 +// models.UpdateVisitor(clientMsg.VisitorId, 1, clientMsg.ClientIp, message.c.ClientIP(), clientMsg.Refer, "") +// //models.CreateVisitor(clientMsg.Name,clientMsg.Avator,message.c.ClientIP(),clientMsg.ToId,clientMsg.VisitorId,clientMsg.Refer,clientMsg.City,clientMsg.ClientIp) +// userInfo := make(map[string]string) +// userInfo["uid"] = user.id +// userInfo["username"] = user.name +// userInfo["avator"] = user.avator +// msg := TypeMessage{ +// Type: "userOnline", +// Data: userInfo, +// } +// str, _ := json.Marshal(msg) +// +// //新版 +// mKefuConns := ws.KefuList[user.to_id] +// if mKefuConns != nil { +// for _, kefu := range mKefuConns { +// kefu.Conn.WriteMessage(websocket.TextMessage, str) +// } +// } +// +// //兼容旧版 +// kefuConns := kefuList[user.to_id] +// if kefuConns != nil { +// for k, kefuConn := range kefuConns { +// log.Println(k, "xxxxxxxx") +// kefuConn.WriteMessage(websocket.TextMessage, str) +// } +// } +// +// //客户上线发微信通知 +// go SendServerJiang(userInfo["username"]) +// sendPingOnlineUsers() +// //客服上线 +// case "kfOnline": +// json.Unmarshal(msgData, &clientMsg) +// //客服id对应的连接 +// var newKefuConns = []*websocket.Conn{conn} +// kefuConns := kefuList[clientMsg.Id] +// if kefuConns != nil { +// newKefuConns = append(newKefuConns, kefuConns...) +// } +// log.Println(newKefuConns) +// kefuList[clientMsg.Id] = newKefuConns +// //发送给客户 +// if len(clientList) == 0 { +// continue +// } +// sendPingOnlineUsers() +// //客服接手 +// case "kfConnect": +// json.Unmarshal(msgData, &clientMsg) +// visitor, ok := clientList[clientMsg.ToId] +// if visitor == nil || !ok { +// continue +// } +// SendKefuOnline(clientMsg, visitor.conn) +// //心跳 +// case "ping": +// msg := TypeMessage{ +// Type: "pong", +// } +// str, _ := json.Marshal(msg) +// conn.WriteMessage(websocket.TextMessage, str) +// } +// +// } +//}