冗余同步通知新ws

pull/23/head
taoshihan1991 4 years ago
parent c63f7332d7
commit dc401ae174

@ -5,6 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"github.com/taoshihan1991/imaptool/models"
myws "github.com/taoshihan1991/imaptool/websocket"
"log"
"sort"
"time"
@ -282,6 +283,13 @@ func singleBroadcaster() {
kefuConn.WriteMessage(websocket.TextMessage, str)
}
}
mKefuConns := myws.KefuList[user.to_id]
if mKefuConns != nil {
for k, kefu := range mKefuConns {
log.Println(k, "xxxxxxxx")
kefu.Conn.WriteMessage(websocket.TextMessage, str)
}
}
//客户上线发微信通知
go SendServerJiang(userInfo["username"])
sendPingOnlineUsers()

@ -36,10 +36,10 @@ func NewKefuServer(c *gin.Context) {
//获取GET参数,创建WS
var kefu User
kefu.id = kefuInfo.Name
kefu.name = kefuInfo.Nickname
kefu.avator = kefuInfo.Avator
kefu.conn = conn
kefu.Id = kefuInfo.Name
kefu.Name = kefuInfo.Nickname
kefu.Avator = kefuInfo.Avator
kefu.Conn = conn
AddKefuToList(&kefu)
message <- &Message{
@ -52,11 +52,20 @@ func NewKefuServer(c *gin.Context) {
}
func AddKefuToList(kefu *User) {
var newKefuConns = []*User{kefu}
kefuConns := kefuList[kefu.id]
kefuConns := KefuList[kefu.Id]
if kefuConns != nil {
newKefuConns = append(newKefuConns, kefuConns...)
for _, kefu := range kefuConns {
msg := TypeMessage{
Type: "pong",
}
str, _ := json.Marshal(msg)
err := kefu.Conn.WriteMessage(websocket.TextMessage, str)
if err != nil {
newKefuConns = append(newKefuConns, kefu)
}
}
}
kefuList[kefu.id] = newKefuConns
KefuList[kefu.Id] = newKefuConns
}
//后端广播发送消息

@ -6,11 +6,11 @@ import (
)
type User struct {
conn *websocket.Conn
name string
id string
avator string
to_id string
Conn *websocket.Conn
Name string
Id string
Avator string
To_id string
}
type Message struct {
conn *websocket.Conn
@ -36,8 +36,8 @@ type ClientMessage struct {
Refer string `json:"refer"`
}
var clientList = make(map[string]*User)
var kefuList = make(map[string][]*User)
var ClientList = make(map[string]*User)
var KefuList = make(map[string][]*User)
var message = make(chan *Message)
var upgrader = websocket.Upgrader{}

Loading…
Cancel
Save