File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments