diff --git a/internal/net/gphttp/websocket/reader.go b/internal/net/gphttp/websocket/reader.go new file mode 100644 index 00000000..fd8b1133 --- /dev/null +++ b/internal/net/gphttp/websocket/reader.go @@ -0,0 +1,25 @@ +package websocket + +import ( + "io" + "time" +) + +type Reader struct { + manager *Manager +} + +func (m *Manager) NewReader() io.Reader { + return &Reader{ + manager: m, + } +} + +func (r *Reader) Read(p []byte) (int, error) { + data, err := r.manager.ReadBinary(10 * time.Second) + if err != nil { + return 0, err + } + copy(p, data) + return len(data), nil +} diff --git a/internal/net/gphttp/websocket/writer.go b/internal/net/gphttp/websocket/writer.go index 1ba3e5ac..0fd8a4ce 100644 --- a/internal/net/gphttp/websocket/writer.go +++ b/internal/net/gphttp/websocket/writer.go @@ -20,7 +20,3 @@ func (cm *Manager) NewWriter(msgType int) io.Writer { func (w *Writer) Write(p []byte) (int, error) { return len(p), w.manager.WriteData(w.msgType, p, 10*time.Second) } - -func (w *Writer) Close() error { - return w.manager.conn.Close() -}