File tree Expand file tree Collapse file tree 1 file changed +18
-7
lines changed Expand file tree Collapse file tree 1 file changed +18
-7
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ package listeners
7
7
import (
8
8
"context"
9
9
"errors"
10
+ "io"
10
11
"net"
11
12
"net/http"
12
13
"sync"
@@ -137,25 +138,35 @@ type wsConn struct {
137
138
}
138
139
139
140
// Read reads the next span of bytes from the websocket connection and returns the number of bytes read.
140
- func (ws * wsConn ) Read (p []byte ) (n int , err error ) {
141
+ func (ws * wsConn ) Read (p []byte ) (int , error ) {
141
142
op , r , err := ws .c .NextReader ()
142
143
if err != nil {
143
- return
144
+ return 0 , err
144
145
}
145
146
146
147
if op != websocket .BinaryMessage {
147
148
err = ErrInvalidMessage
148
- return
149
+ return 0 , err
149
150
}
150
151
151
- return r .Read (p )
152
+ var n , br int
153
+ for {
154
+ br , err = r .Read (p [n :])
155
+ n += br
156
+ if err != nil {
157
+ if err == io .EOF {
158
+ err = nil
159
+ }
160
+ return n , err
161
+ }
162
+ }
152
163
}
153
164
154
165
// Write writes bytes to the websocket connection.
155
- func (ws * wsConn ) Write (p []byte ) (n int , err error ) {
156
- err = ws .c .WriteMessage (websocket .BinaryMessage , p )
166
+ func (ws * wsConn ) Write (p []byte ) (int , error ) {
167
+ err : = ws .c .WriteMessage (websocket .BinaryMessage , p )
157
168
if err != nil {
158
- return
169
+ return 0 , err
159
170
}
160
171
161
172
return len (p ), nil
You can’t perform that action at this time.
0 commit comments