diff options
Diffstat (limited to 'go/utils')
| -rw-r--r-- | go/utils/ws_generic.go | 23 | ||||
| -rw-r--r-- | go/utils/ws_wasm.go | 30 | ||||
| -rw-r--r-- | go/utils/ws_wasm.gogopherjs | 18 |
3 files changed, 71 insertions, 0 deletions
diff --git a/go/utils/ws_generic.go b/go/utils/ws_generic.go new file mode 100644 index 00000000..2b5ddd95 --- /dev/null +++ b/go/utils/ws_generic.go @@ -0,0 +1,23 @@ +//go:build !wasm +// +build !wasm + +package utils + +import ( + "golang.org/x/net/websocket" +) + +func WsDial(url string) (c *websocket.Conn, err error) { + c, err = websocket.Dial(url, "", "draft.muhq.space") + return +} + +func WsJsonSend(c *websocket.Conn, o any) (err error) { + err = websocket.JSON.Send(c, o) + return +} + +func WsJsonRecv(c *websocket.Conn, o any) (err error) { + err = websocket.JSON.Receive(c, o) + return +} diff --git a/go/utils/ws_wasm.go b/go/utils/ws_wasm.go new file mode 100644 index 00000000..562f6791 --- /dev/null +++ b/go/utils/ws_wasm.go @@ -0,0 +1,30 @@ +package utils + +import ( + "net" + "encoding/json" + "context" + "github.com/coder/websocket" +) + +func WsDial(addr string) (c net.Conn, err error) { + ctx := context.Background() + ws, _, err := websocket.Dial(ctx, addr, nil) + if err != nil { + return nil, err + } + c = websocket.NetConn(ctx, ws, websocket.MessageText) + return +} + +func WsJsonSend(c net.Conn, o any) (err error) { + enc := json.NewEncoder(c) + err = enc.Encode(o) + return +} + +func WsJsonRecv(c net.Conn, o any) (err error) { + dec := json.NewDecoder(c) + err = dec.Decode(o) + return +} diff --git a/go/utils/ws_wasm.gogopherjs b/go/utils/ws_wasm.gogopherjs new file mode 100644 index 00000000..84852c54 --- /dev/null +++ b/go/utils/ws_wasm.gogopherjs @@ -0,0 +1,18 @@ +package utils + +import ( + "encoding/json" + "net" + "github.com/gopherjs/websocket" +) + +func WsDial(addr string) (c net.Conn, err error) { + c, err = websocket.Dial(addr) + return +} + +func WsJsonSend(c net.Conn, o any) (err error) { + enc := json.NewEncoder(c) + err = enc.Encode(o) + return +} |
