修复Im消息发送Bug,添加对方离线自动断开。
This commit is contained in:
parent
f626d89d30
commit
63b5b968b4
|
|
@ -144,7 +144,7 @@ func SRMessage(c *gin.Context) {
|
|||
}
|
||||
defer ws.Close()
|
||||
res := worker.GetRedis(redis_key + "_connection")
|
||||
worker.SetRedisWithExpire("user_"+id.(string)+"_status", "1", time.Second*5)
|
||||
worker.SetRedisWithExpire("user_"+strconv.Itoa(id1)+"_status", "1", time.Second*5)
|
||||
if res == "" {
|
||||
return
|
||||
}
|
||||
|
|
@ -197,8 +197,8 @@ func SRMessage(c *gin.Context) {
|
|||
res3, _ = json.Marshal(msg)
|
||||
}
|
||||
//判断对方是否在线,若不在线则发送离线消息,否则正常发送消息
|
||||
if worker.IsContainKey(to_user_id+"_status") == true {
|
||||
if worker.GetRedis(to_user_id+"_status") == "0" {
|
||||
if worker.IsContainKey("user_"+to_user_id+"_status") == true {
|
||||
if worker.GetRedis("user_"+to_user_id+"_status") == "0" {
|
||||
msg.Type = "offline"
|
||||
msg.Msg = "offline"
|
||||
msg.From_user_id = -1
|
||||
|
|
@ -208,9 +208,9 @@ func SRMessage(c *gin.Context) {
|
|||
}
|
||||
err2 := ws.WriteMessage(websocket.TextMessage, res3)
|
||||
if err2 != nil {
|
||||
worker.SetRedisWithExpire("user_"+id.(string)+"_status", "0", time.Second*120) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||
worker.SetRedisWithExpire("user_"+strconv.Itoa(id1)+"_status", "0", time.Second*120) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||
} else {
|
||||
worker.SetRedisWithExpire("user_"+id.(string)+"_status", "1", time.Second*5) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||
worker.SetRedisWithExpire("user_"+strconv.Itoa(id1)+"_status", "1", time.Second*5) //设置用户在线状态,1为在线,0为离线,5秒后过期
|
||||
}
|
||||
time.Sleep(time.Second * 1) // 每1秒查询一次
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue