添加聊天时心跳检测
This commit is contained in:
parent
22442eb828
commit
75a0cb9f3c
|
|
@ -178,19 +178,30 @@ func SRMessage(c *gin.Context) {
|
||||||
for {
|
for {
|
||||||
if v := clients[ws]; v == true {
|
if v := clients[ws]; v == true {
|
||||||
res2 := worker.PopRedisListLeft(res + "_" + strconv.Itoa(id1))
|
res2 := worker.PopRedisListLeft(res + "_" + strconv.Itoa(id1))
|
||||||
|
var res3 []byte
|
||||||
|
var msg proto.Message
|
||||||
if res2 != "" {
|
if res2 != "" {
|
||||||
var msg proto.Message
|
|
||||||
msg.Type = "msg"
|
msg.Type = "msg"
|
||||||
msg.Msg = res2
|
msg.Msg = res2
|
||||||
msg.From_user_id = id1
|
msg.From_user_id = id1
|
||||||
msg.Session = res
|
msg.Session = res
|
||||||
res3, _ := json.Marshal(msg)
|
res3, _ = json.Marshal(msg)
|
||||||
err2 := ws.WriteMessage(websocket.TextMessage, res3)
|
} else {
|
||||||
if err2 != nil {
|
//若无消息则发送心跳包
|
||||||
break
|
msg.Type = "check"
|
||||||
}
|
msg.Msg = "check"
|
||||||
|
msg.From_user_id = -1
|
||||||
|
msg.Session = res
|
||||||
|
res3, _ = json.Marshal(msg)
|
||||||
}
|
}
|
||||||
time.Sleep(time.Second * 1) // 每100毫秒查询一次
|
err2 := ws.WriteMessage(websocket.TextMessage, res3)
|
||||||
|
if err2 != nil {
|
||||||
|
clientsMux.Lock()
|
||||||
|
delete(clients, ws)
|
||||||
|
clientsMux.Unlock()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
time.Sleep(time.Second * 1) // 每1秒查询一次
|
||||||
} else {
|
} else {
|
||||||
clientsMux.Lock()
|
clientsMux.Lock()
|
||||||
delete(clients, ws)
|
delete(clients, ws)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue