diff --git a/examples/basic.go b/examples/basic.go new file mode 100644 index 0000000..6784f4b --- /dev/null +++ b/examples/basic.go @@ -0,0 +1,46 @@ +package main + +import ( + "context" + "github.com/loeffel-io/recws" + "log" + "time" +) + +func main() { + ctx, cancel := context.WithCancel(context.Background()) + ws := recws.RecConn{} + ws.Dial("wss://echo.websocket.org", nil) + + go func() { + time.Sleep(2 * time.Second) + cancel() + }() + + for { + select { + case <-ctx.Done(): + go ws.Close() + log.Printf("Websocket closed %s", ws.GetURL()) + return + default: + if !ws.IsConnected() { + log.Printf("Websocket disconnected %s", ws.GetURL()) + continue + } + + if err := ws.WriteMessage(1, []byte("Incoming")); err != nil { + log.Printf("Error: WriteMessage %s", ws.GetURL()) + return + } + + _, message, err := ws.ReadMessage() + if err != nil { + log.Printf("Error: ReadMessage %s", ws.GetURL()) + return + } + + log.Printf("Success: %s", message) + } + } +}