in wrappers.go [168:187]
func (w *ioWrapper) Read(out []byte) (n int, err error) {
mt, data, err := w.ReadMessage()
if mt != websocket.BinaryMessage {
switch err {
case nil:
data, err = w.decoder.Bytes(data)
case io.EOF:
return 0, io.EOF
}
}
if err != nil {
return 0, err
}
w.mu.Lock()
w.messageType = mt
w.mu.Unlock()
return copy(out, data), nil
}