1
1
package engineio
2
2
3
3
import (
4
- "fmt"
5
4
"io"
6
5
"net"
7
6
"net/http"
@@ -13,14 +12,9 @@ import (
13
12
"github.com/googollee/go-socket.io/engineio/packet"
14
13
"github.com/googollee/go-socket.io/engineio/session"
15
14
"github.com/googollee/go-socket.io/engineio/transport"
15
+ "github.com/googollee/go-socket.io/logger"
16
16
)
17
17
18
- // Pauser is connection which can be paused and resumes.
19
- type Pauser interface {
20
- Pause ()
21
- Resume ()
22
- }
23
-
24
18
// Opener is client connection which need receive open message first.
25
19
type Opener interface {
26
20
Open () (transport.ConnParameters , error )
@@ -72,14 +66,19 @@ func (c *client) NextReader() (session.FrameType, io.ReadCloser, error) {
72
66
}
73
67
74
68
case packet .CLOSE :
75
- c .Close ()
69
+ if err = c .Close (); err != nil {
70
+ logger .Error ("close client with packet close:" , err )
71
+ }
72
+
76
73
return 0 , nil , io .EOF
77
74
78
75
case packet .MESSAGE :
79
76
return session .FrameType (ft ), r , nil
80
77
}
81
78
82
- r .Close ()
79
+ if err = r .Close (); err != nil {
80
+ logger .Error ("close reader:" , err )
81
+ }
83
82
}
84
83
}
85
84
@@ -104,7 +103,11 @@ func (c *client) RemoteHeader() http.Header {
104
103
}
105
104
106
105
func (c * client ) serve () {
107
- defer c .conn .Close ()
106
+ defer func () {
107
+ if closeErr := c .conn .Close (); closeErr != nil {
108
+ logger .Error ("close connect:" , closeErr )
109
+ }
110
+ }()
108
111
109
112
for {
110
113
select {
@@ -115,15 +118,19 @@ func (c *client) serve() {
115
118
116
119
w , err := c .conn .NextWriter (frame .String , packet .PING )
117
120
if err != nil {
121
+ logger .Error ("get next writer with string frame and packet ping:" , err )
122
+
118
123
return
119
124
}
120
125
121
- if err := w .Close (); err != nil {
126
+ if err = w .Close (); err != nil {
127
+ logger .Error ("close writer:" , err )
128
+
122
129
return
123
130
}
124
131
125
132
if err = c .conn .SetWriteDeadline (time .Now ().Add (c .params .PingInterval + c .params .PingTimeout )); err != nil {
126
- fmt . Printf ("set writer's deadline error,msg:%s \n " , err . Error () )
133
+ logger . Error ("set writer deadline: " , err )
127
134
}
128
135
}
129
136
}
0 commit comments