Don't log "expected" websocket errors, like the socket being closed

This commit is contained in:
Paul Bellamy
2016-02-24 11:22:48 +00:00
parent 2fe5d3baae
commit e865890d72
2 changed files with 17 additions and 2 deletions

View File

@@ -90,7 +90,9 @@ func handleWebsocket(
go func(c *websocket.Conn) {
for { // just discard everything the browser sends
if _, _, err := c.NextReader(); err != nil {
log.Println("err:", err)
if !xfer.IsExpectedWSCloseError(err) {
log.Println("err:", err)
}
close(quit)
break
}
@@ -111,7 +113,9 @@ func handleWebsocket(
previousTopo = newTopo
if err := conn.SetWriteDeadline(time.Now().Add(websocketTimeout)); err != nil {
log.Println("err:", err)
if !xfer.IsExpectedWSCloseError(err) {
log.Println("err:", err)
}
return
}

View File

@@ -7,6 +7,17 @@ import (
"github.com/ugorji/go/codec"
)
// IsExpectedWSCloseError returns boolean indicating whether the error is a
// clean disconnection.
func IsExpectedWSCloseError(err error) bool {
return websocket.IsCloseError(
err,
websocket.CloseNormalClosure,
websocket.CloseGoingAway,
websocket.CloseNoStatusReceived,
)
}
// WriteJSONtoWS writes the JSON encoding of v to the connection.
func WriteJSONtoWS(c *websocket.Conn, v interface{}) error {
w, err := c.NextWriter(websocket.TextMessage)