package main import ( "crypto/tls" "fmt" "log" "net/http" "github.com/gorilla/websocket" "yuchat-proxy/eth" ) const ( tcpAddress = "172.20.0.1:1080" ) var e = eth.Init() var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { return true // 允许来自任何来源的连接 }, } func wsHandler(w http.ResponseWriter, r *http.Request) { fmt.Println("有新的客户端连接了") conn, err := upgrader.Upgrade(w, r, nil) if err != nil { fmt.Println("websocket连接失败:", err) return } // remoteConn, err := net.Dial("tcp", tcpAddress) // if err != nil { // log.Printf("本地服务连接失败 %s: %v", tcpAddress, err) // return // } fmt.Println("本地服务启动成功", tcpAddress) go e.WsToEthernet(conn) go e.EthernetPacketsToWs(conn) // go common.WsToTcpHandler(remoteConn, conn) // go common.TcpToWsHandler(remoteConn, conn) } func main() { server := &http.Server{ Addr: ":8080", TLSConfig: &tls.Config{ InsecureSkipVerify: true, // 可选 }, } http.HandleFunc("/ws", wsHandler) fmt.Println("WebSocket服务已启动,地址:ws://localhost:8080/ws") if err := server.ListenAndServe(); err != nil { log.Fatalf("Server failed: %s", err) } }