mirror of
https://github.com/tiennm99/gomoku.git
synced 2026-05-24 10:25:13 +00:00
1b9eec5f7d
- 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
37 lines
795 B
Go
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()
|
|
}
|