converge/cmd/wstotcp/wstotcp.go

47 lines
1.0 KiB
Go

package main
import (
"converge/pkg/iowrappers"
"converge/pkg/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)
if err != nil {
log.Println("Error upgrading to WebSocket:", err)
return
}
defer wsConn.Close()
iowrappers.SynchronizeStreams(tcpConn, wsConn)
}