package main import ( "cidebug/pkg/iowrappers" "cidebug/pkg/websocketutil" "github.com/gorilla/websocket" "log" "net" "os" "time" ) func closeConnection(conn net.Conn) { if tcpConn, ok := conn.(*net.TCPConn); ok { tcpConn.SetLinger(0) } _ = conn.Close() } type Stdio struct{} func (stdio Stdio) Read(b []byte) (n int, err error) { return os.Stdin.Read(b) } func (stdio Stdio) Write(b []byte) (n int, err error) { return os.Stdout.Write(b) } func main() { wsURL := os.Args[1] _wsConn, _, err := websocket.DefaultDialer.Dial(wsURL, nil) _wsConn.SetReadDeadline(time.Time{}) _wsConn.SetWriteDeadline(time.Time{}) if err != nil { log.Println("WebSocket connection error:", err) panic(err) } wsConn := websocketutil.NewWebSocketConn(_wsConn) defer wsConn.Close() iowrappers.SynchronizeStreams(wsConn, Stdio{}) }