Files
gomoku/server/pkg/protocol/websocket.go
T
tiennm99 1b9eec5f7d refactor: rename Go module and copy core pkgs into server/pkg
- Module: github.com/ratel-online/server → github.com/tiennm99/gomoku/server
- Copied core/{log,util/async,util/json,util/strings,model,network,protocol,consts}
  into server/pkg/* (temporary shims until phase-05 replaces protocol/network)
- Rewrote all ratel-online import paths across server/**/*.go
- Trimmed main.go: single -p flag, WS-only on :1999, no TCP/bot/static
- Trimmed network/wss.go: endpoint /gomoku, no static file serving
- Updated Makefile: removed TCP/bot references, port 1999
2026-04-11 12:04:03 +07:00

37 lines
795 B
Go

package protocol
import (
"github.com/gorilla/websocket"
"github.com/tiennm99/gomoku/server/pkg/json"
)
type WebsocketReadWriteCloser struct {
conn *websocket.Conn
}
func NewWebsocketReadWriteCloser(conn *websocket.Conn) WebsocketReadWriteCloser {
return WebsocketReadWriteCloser{conn: conn}
}
func (w WebsocketReadWriteCloser) Read() (*Packet, error) {
_, b, err := w.conn.ReadMessage()
if err != nil {
return nil, err
}
msg := &Packet{}
json.Unmarshal(b, msg)
return msg, nil
}
func (w WebsocketReadWriteCloser) Write(msg Packet) error {
return w.conn.WriteMessage(websocket.BinaryMessage, json.Marshal(msg))
}
func (w WebsocketReadWriteCloser) Close() error {
return w.conn.Close()
}
func (w WebsocketReadWriteCloser) IP() string {
return w.conn.RemoteAddr().String()
}