Add logging to websocket errors

This commit is contained in:
Jannis Mattheis 2019-11-28 21:04:19 +01:00
parent c9c6246c4c
commit 0a7a5cd619
1 changed files with 15 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package stream package stream
import ( import (
"fmt"
"time" "time"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
@ -67,6 +68,7 @@ func (c *client) startReading(pongWait time.Duration) {
}) })
for { for {
if _, _, err := c.conn.NextReader(); err != nil { if _, _, err := c.conn.NextReader(); err != nil {
printWebSocketError("ReadError", err)
return return
} }
} }
@ -92,13 +94,26 @@ func (c *client) startWriteHandler(pingPeriod time.Duration) {
c.conn.SetWriteDeadline(time.Now().Add(writeWait)) c.conn.SetWriteDeadline(time.Now().Add(writeWait))
if err := writeJSON(c.conn, message); err != nil { if err := writeJSON(c.conn, message); err != nil {
printWebSocketError("WriteError", err)
return return
} }
case <-pingTicker.C: case <-pingTicker.C:
c.conn.SetWriteDeadline(time.Now().Add(writeWait)) c.conn.SetWriteDeadline(time.Now().Add(writeWait))
if err := ping(c.conn); err != nil { if err := ping(c.conn); err != nil {
printWebSocketError("PingError", err)
return 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)
}