in websocketserver/websocketserver.go [165:182]
func (s *Server) handleReadError(err error) {
var closeMessage []byte
switch err.(type) {
case net.Error:
netError, _ := err.(net.Error)
if netError.Timeout() {
closeMessage = websocket.FormatCloseMessage(websocket.CloseGoingAway, err.Error())
}
case *websocket.CloseError:
// NOOP
default:
closeMessage = websocket.FormatCloseMessage(websocket.CloseUnsupportedData, "invalid message")
}
if closeMessage != nil && s.conn != nil {
s.conn.WriteControl(websocket.CloseMessage, closeMessage, time.Now().Add(3*time.Second))
}
}