Skip to content

Commit b9ea55b

Browse files
Added ws_test for websocket testing with commands support
1 parent 6ed7dba commit b9ea55b

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

cmd/ws_test/main.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// wsclient.go
2+
package main
3+
4+
import (
5+
"bufio"
6+
"fmt"
7+
"log"
8+
"net/http"
9+
"os"
10+
11+
"github.com/gorilla/websocket"
12+
)
13+
14+
func main() {
15+
if len(os.Args) < 3 {
16+
fmt.Println("Usage: go run wsclient.go <url> <jwt_token>")
17+
return
18+
}
19+
20+
url := os.Args[1]
21+
jwt := os.Args[2]
22+
23+
header := http.Header{}
24+
header.Add("Authorization", "Bearer "+jwt)
25+
26+
conn, resp, err := websocket.DefaultDialer.Dial(url, header)
27+
if err != nil {
28+
log.Fatalf("Dial failed: %v, response: %+v", err, resp)
29+
}
30+
defer conn.Close()
31+
32+
fmt.Println("Connected to", url)
33+
fmt.Println("Type a message and press Enter to send. Ctrl+C to quit.")
34+
35+
// Read incoming messages in a goroutine
36+
go func() {
37+
for {
38+
_, msg, err := conn.ReadMessage()
39+
if err != nil {
40+
log.Println("Read error:", err)
41+
os.Exit(1)
42+
}
43+
fmt.Println("Received:", string(msg))
44+
}
45+
}()
46+
47+
// Read user input and send messages
48+
scanner := bufio.NewScanner(os.Stdin)
49+
for scanner.Scan() {
50+
text := scanner.Text()
51+
err := conn.WriteMessage(websocket.TextMessage, []byte(text))
52+
if err != nil {
53+
log.Println("Write error:", err)
54+
break
55+
}
56+
}
57+
}

0 commit comments

Comments
 (0)