diff --git a/xP/xP.go b/xP/xP.go index b9ab73c..9428501 100644 --- a/xP/xP.go +++ b/xP/xP.go @@ -22,6 +22,7 @@ import ( var ( addressBind string addressConnect string + addressWS string ) func clientToRelay( @@ -163,18 +164,24 @@ func handleDefault(w http.ResponseWriter, r *http.Request) { return } - wsURI := fmt.Sprintf("ws://%s/ws", r.Host) + wsURI := addressWS + if wsURI == "" { + wsURI = fmt.Sprintf("ws://%s/ws", r.Host) + } if err := page.Execute(w, wsURI); err != nil { log.Println("Template execution failed: " + err.Error()) } } func main() { - if len(os.Args) != 3 { - log.Fatalf("usage: %s BIND CONNECT\n", os.Args[0]) + if len(os.Args) < 3 || len(os.Args) > 4 { + log.Fatalf("usage: %s BIND CONNECT [WSURI]\n", os.Args[0]) } addressBind, addressConnect = os.Args[1], os.Args[2] + if len(os.Args) > 3 { + addressWS = os.Args[3] + } http.Handle("/ws", websocket.Handler(handleWebSocket)) http.Handle("/", http.HandlerFunc(handleDefault))