package main import ( "context" "log" "github.com/coder/websocket" "github.com/coder/websocket/wsjson" ) func main() { log.Println("This is a test client.") ctx, cancel := context.WithCancel(context.Background()) defer cancel() c, _, err := websocket.Dial(ctx, "ws://localhost:8080/ws", nil) if err != nil { log.Fatal("dial error:", err) return } defer c.CloseNow() err = wsjson.Write(ctx, c, "Hello, WebSocket server!") if err != nil { log.Fatal("write error:", err) return } typ, msg, err := c.Read(ctx) if err != nil { log.Println("read error:", err) return } switch typ { case websocket.MessageText: log.Printf("Received text message: %s", string(msg)) case websocket.MessageBinary: log.Printf("Received binary message: %v", msg) } c.Close(websocket.StatusNormalClosure, "test client finished") }