package main import ( "converge/pkg/support/iowrappers" "converge/pkg/support/websocketutil" "fmt" "github.com/gorilla/websocket" "log" "net" "net/http" ) var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } func main() { // Connect to TCP server // Set up WebSocket handler http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) { tcpConn, err := net.Dial("tcp", "localhost:2222") // Replace with your TCP server address if err != nil { log.Fatal("Error connecting to TCP server:", err) } defer tcpConn.Close() handleWebSocket(w, r, tcpConn) }) // Start HTTP server fmt.Println("WebSocket server listening on :8000") log.Fatal(http.ListenAndServe(":8000", nil)) } func handleWebSocket(w http.ResponseWriter, r *http.Request, tcpConn net.Conn) { conn, err := upgrader.Upgrade(w, r, nil) wsConn := websocketutil.NewWebSocketConn(conn, false) if err != nil { log.Println("Error upgrading to WebSocket:", err) return } defer wsConn.Close() iowrappers.SynchronizeStreams("tcp -- ws", tcpConn, wsConn) }