From 0a7a5cd61928cc33af4dffd70767675d745897ab Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Thu, 28 Nov 2019 21:04:19 +0100 Subject: [PATCH] Add logging to websocket errors --- api/stream/client.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/api/stream/client.go b/api/stream/client.go index 30dd69b..33bb5b9 100644 --- a/api/stream/client.go +++ b/api/stream/client.go @@ -1,6 +1,7 @@ package stream import ( + "fmt" "time" "github.com/gorilla/websocket" @@ -67,6 +68,7 @@ func (c *client) startReading(pongWait time.Duration) { }) for { if _, _, err := c.conn.NextReader(); err != nil { + printWebSocketError("ReadError", err) return } } @@ -92,13 +94,26 @@ func (c *client) startWriteHandler(pingPeriod time.Duration) { c.conn.SetWriteDeadline(time.Now().Add(writeWait)) if err := writeJSON(c.conn, message); err != nil { + printWebSocketError("WriteError", err) return } case <-pingTicker.C: c.conn.SetWriteDeadline(time.Now().Add(writeWait)) if err := ping(c.conn); err != nil { + printWebSocketError("PingError", err) return } } } } + +func printWebSocketError(prefix string, err error) { + closeError, ok := err.(*websocket.CloseError) + + if ok && closeError != nil && (closeError.Code == 1000 || closeError.Code == 1001) { + // normal closure + return + } + + fmt.Println("WebSocket:", prefix, err) +}