diff --git a/ws/wsConn.go b/ws/wsConn.go index fec1d7b..e9173ce 100644 --- a/ws/wsConn.go +++ b/ws/wsConn.go @@ -1,7 +1,6 @@ package ws import ( - "encoding/binary" "fmt" "github.com/fox/fox/ipb" "github.com/fox/fox/log" @@ -56,7 +55,6 @@ func (c *wsConnect) SendMsg(data []byte) error { func (c *wsConnect) Close() { c.once.Do(func() { //log.Debug(c.Log("关闭链接")) - _ = c.wsConn.WriteMessage(websocket.CloseMessage, []byte{}) c.inChan.Close() c.outChan.Close() _ = c.wsConn.Close() @@ -92,33 +90,13 @@ func (c *wsConnect) readWsLoop() { //log.Debug(c.Log("关闭连接:%v", err)) return } - switch msgType { - //case websocket.PingMessage: - // log.Debug(c.Log("received ping message")) - // _ = c.sendMsg(websocket.PongMessage, []byte("pong")) - //case websocket.PongMessage: - // log.Debug(c.Log("received pong from client")) - case websocket.CloseMessage: - code := websocket.CloseNormalClosure - reason := "" - if len(data) >= 2 { - code = int(binary.BigEndian.Uint16(data)) - reason = string(data[2:]) - } - log.Debug(c.Log("关闭原因码:%d 描述:%s", code, reason)) - // 发送响应关闭帧(必须回传相同状态码) - rspMsg := websocket.FormatCloseMessage(code, reason) - _ = c.wsConn.WriteControl(websocket.CloseMessage, rspMsg, time.Now().Add(5*time.Second)) + if msgType != wsMsgType { + continue + } + msg := &wsMessage{messageType: msgType, data: data} + if err = c.inChan.Write(msg); err != nil { + log.Error(c.Log("读队列关闭:%v", err)) return - default: - if msgType != wsMsgType { - continue - } - msg := &wsMessage{messageType: msgType, data: data} - if err = c.inChan.Write(msg); err != nil { - log.Error(c.Log("读队列关闭:%v", err)) - return - } } } }