|
| 1 | +// Package websocket provides high- and low-level bindings for the browser's |
| 2 | +// WebSocket. |
| 3 | +// |
| 4 | +// The high-level bindings act like a regular net.Conn. They can be used as |
| 5 | +// such. For example: |
| 6 | +// c, err := websocket.Dial("ws://localhost/socket") // Blocks until connection is established |
| 7 | +// if err != nil { handle_error() } |
| 8 | +// |
| 9 | +// buf := make([]byte, 1024) |
| 10 | +// _, err = c.Read(buf) // Blocks until a WebSocket frame is received |
| 11 | +// if err != nil { handle_error() } |
| 12 | +// do_something_with_data(buf) |
| 13 | +// |
| 14 | +// _, err = c.Write([]byte("Hello!")) |
| 15 | +// if err != nil { handle_error() } |
| 16 | +// |
| 17 | +// err = c.Close() |
| 18 | +// if err != nil { handle_error() } |
| 19 | +// |
| 20 | +// The low-level bindings use the typical JavaScript idioms. |
| 21 | +// ws, err := websocket.New("ws://localhost/socket") // Does not block. |
| 22 | +// if err != nil { handle_error() } |
| 23 | +// |
| 24 | +// onOpen := func(ev js.Object) { |
| 25 | +// err := ws.Send([]byte("Hello!")) // Send as a binary frame |
| 26 | +// err := ws.Send("Hello!") // Send a text frame |
| 27 | +// } |
| 28 | +// |
| 29 | +// ws.AddEventListener("open", false, onOpen) |
| 30 | +// ws.AddEventListener("message", false, onMessage) |
| 31 | +// ws.AddEventListener("close", false, onClose) |
| 32 | +// ws.AddEventListener("error", false, onError) |
| 33 | +// |
| 34 | +// err = ws.Close() |
| 35 | +// if err != nil { handle_error() } |
| 36 | +package websocket |
0 commit comments