websocket
Packages websocket and websocketjs provide high- and low-level bindings for the browser's WebSocket API (respectively).
The high-level bindings offer a Dial function that returns a regular net.Conn.
It can be used similarly to net package.
conn, err := websocket.Dial("ws://localhost/socket")
if err != nil {
}
buf := make([]byte, 1024)
n, err = conn.Read(buf)
doSomethingWithData(buf[:n])
if err != nil {
}
_, err = conn.Write([]byte("Hello!"))
err = conn.Close()
The low-level bindings work with typical JavaScript idioms, such as adding event listeners with callbacks.
ws, err := websocketjs.New("ws://localhost/socket")
if err != nil {
}
onOpen := func(ev *js.Object) {
err := ws.Send([]byte("Hello!"))
err := ws.Send("Hello!")
}
ws.AddEventListener("open", false, onOpen)
ws.AddEventListener("message", false, onMessage)
ws.AddEventListener("close", false, onClose)
ws.AddEventListener("error", false, onError)
err = ws.Close()
Alternatives