Add logging to websocket errors
This commit is contained in:
parent
c9c6246c4c
commit
0a7a5cd619
|
|
@ -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)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue