diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index 9c2de077..af52d9e6 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -114,7 +114,6 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) conn.Close() return } - defer ws.close() //循环读客户端信息 go ws.readLoop() //循环把数据发送给客户端 @@ -250,6 +249,7 @@ func (w *wsConnectItem) heartbeat() { //发送心跳信息 if err := w.conn.WriteMessage(websocket.PongMessage, nil); err != nil { logx.Error("发送心跳信息异常,关闭连接:", w.uniqueId, err) + w.close() return } } @@ -260,7 +260,7 @@ func (w *wsConnectItem) heartbeat() { func (w *wsConnectItem) close() { w.mutex.Lock() defer w.mutex.Unlock() - logx.Info("websocket:", w.uniqueId, " is closing...") + logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closing....") //发送关闭信息 _ = w.conn.WriteMessage(websocket.CloseMessage, nil) w.conn.Close() @@ -269,7 +269,7 @@ func (w *wsConnectItem) close() { w.isClose = true close(w.closeChan) } - logx.Info("websocket:", w.uniqueId, " is closed") + logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closed") } // 读取出口缓冲池数据输出返回给浏览器端