@@ -41,6 +41,13 @@ type connection struct {
41
41
userID int
42
42
}
43
43
44
+ func (c * connection ) logError (err error , msg string ) {
45
+ log .WithError (err ).WithFields (log.Fields {
46
+ "context" : "websocket" ,
47
+ "user_id" : c .userID ,
48
+ }).Error (msg )
49
+ }
50
+
44
51
// readPump pumps messages from the websocket connection to the hub.
45
52
func (c * connection ) readPump () {
46
53
defer func () {
@@ -50,11 +57,13 @@ func (c *connection) readPump() {
50
57
51
58
c .ws .SetReadLimit (maxMessageSize )
52
59
53
- util .LogErrorF (c .ws .SetReadDeadline (tz .Now ().Add (pongWait )), log.Fields {"error" : "Cannot set read deadline" })
60
+ if err := c .ws .SetReadDeadline (tz .Now ().Add (pongWait )); err != nil {
61
+ c .logError (err , "Cannot set read deadline" )
62
+ }
54
63
55
64
c .ws .SetPongHandler (func (string ) error {
56
- err := c .ws .SetReadDeadline (tz .Now ().Add (pongWait ))
57
- util .LogErrorF (err , log.Fields {"error" : "Cannot set read deadline" })
65
+ err2 := c .ws .SetReadDeadline (tz .Now ().Add (pongWait ))
66
+ util .LogErrorF (err2 , log.Fields {"error" : "Cannot set read deadline" })
58
67
return nil
59
68
})
60
69
@@ -64,7 +73,7 @@ func (c *connection) readPump() {
64
73
65
74
if err != nil {
66
75
if websocket .IsUnexpectedCloseError (err , websocket .CloseGoingAway ) {
67
- util . LogError (err )
76
+ c . logError (err , "Cannot read message from websocket" )
68
77
}
69
78
break
70
79
}
@@ -74,9 +83,9 @@ func (c *connection) readPump() {
74
83
// write writes a message with the given message type and payload.
75
84
func (c * connection ) write (mt int , payload []byte ) error {
76
85
77
- err := c .ws .SetWriteDeadline (tz .Now ().Add (writeWait ))
78
-
79
- util . LogErrorF ( err , log. Fields { "error" : "Cannot set write deadline" })
86
+ if err := c .ws .SetWriteDeadline (tz .Now ().Add (writeWait )); err != nil {
87
+ c . logError ( err , "Cannot set write deadline" )
88
+ }
80
89
81
90
return c .ws .WriteMessage (mt , payload )
82
91
}
@@ -95,25 +104,17 @@ func (c *connection) writePump() {
95
104
case message , ok := <- c .send :
96
105
if ! ok {
97
106
if err := c .write (websocket .CloseMessage , []byte {}); err != nil {
98
- log .WithError (err ).WithFields (log.Fields {
99
- "context" : "websocket" ,
100
- "user_id" : c .userID ,
101
- }).Debug ("Cannot send close message" )
107
+ c .logError (err , "Cannot send close message" )
102
108
}
103
109
return
104
110
}
111
+
105
112
if err := c .write (websocket .TextMessage , message ); err != nil {
106
- log .WithError (err ).WithFields (log.Fields {
107
- "context" : "websocket" ,
108
- "user_id" : c .userID ,
109
- }).Debug ("Cannot send text message" )
113
+ c .logError (err , "Cannot send message" )
110
114
}
111
115
case <- ticker .C :
112
116
if err := c .write (websocket .PingMessage , []byte {}); err != nil {
113
- log .WithError (err ).WithFields (log.Fields {
114
- "context" : "websocket" ,
115
- "user_id" : c .userID ,
116
- }).Debug ("Cannot send ping message" )
117
+ c .logError (err , "Cannot send ping message" )
117
118
return
118
119
}
119
120
}
0 commit comments