44 lines
847 B
Go
44 lines
847 B
Go
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")
|
|
}
|