feat: 基本的websocket echo服务
This commit is contained in:
43
cmd/test-client/main.go
Normal file
43
cmd/test-client/main.go
Normal file
@ -0,0 +1,43 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user