aboutsummaryrefslogtreecommitdiff
path: root/go/utils
diff options
context:
space:
mode:
Diffstat (limited to 'go/utils')
-rw-r--r--go/utils/ws_generic.go23
-rw-r--r--go/utils/ws_wasm.go30
-rw-r--r--go/utils/ws_wasm.gogopherjs18
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
+}