From e3c02b6a3c4a756c7f67993d6004998bcd6d671d Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 21 Jul 2024 11:24:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?im=E4=BF=AE=E5=A4=8D=E5=AF=B9=E6=96=B9?= =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/im.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/handler/im.go b/handler/im.go index d4552f9..72a9e8a 100644 --- a/handler/im.go +++ b/handler/im.go @@ -205,6 +205,13 @@ func SRMessage(c *gin.Context) { msg.Session = res res3, _ = json.Marshal(msg) } + } else { + //对方不在线 + msg.Type = "offline" + msg.Msg = "offline" + msg.From_user_id = -1 + msg.Session = res + res3, _ = json.Marshal(msg) } err2 := ws.WriteMessage(websocket.TextMessage, res3) if err2 != nil { From f8e3dc4d6109ffbc0245d2b6a4cc8edbeddaafa9 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 21 Jul 2024 11:28:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?im=E4=BF=AE=E5=A4=8D=E5=AF=B9=E6=96=B9?= =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/im.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/handler/im.go b/handler/im.go index 72a9e8a..45c7538 100644 --- a/handler/im.go +++ b/handler/im.go @@ -175,6 +175,7 @@ func SRMessage(c *gin.Context) { } }(ws, res, to_user_id) + var status_cnt int // 从Redis中读取消息并发送到客户端 for { if v := clients[ws]; v == true { @@ -206,12 +207,17 @@ func SRMessage(c *gin.Context) { res3, _ = json.Marshal(msg) } } else { - //对方不在线 - msg.Type = "offline" - msg.Msg = "offline" - msg.From_user_id = -1 - msg.Session = res - res3, _ = json.Marshal(msg) + if status_cnt > 5 { + //对方不在线 + msg.Type = "offline" + msg.Msg = "offline" + msg.From_user_id = -1 + msg.Session = res + res3, _ = json.Marshal(msg) + } else { + status_cnt++ + } + } err2 := ws.WriteMessage(websocket.TextMessage, res3) if err2 != nil {