58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
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)
|
||
}
|
||
}
|