diff options
Diffstat (limited to 'xP/xP.go')
-rw-r--r-- | xP/xP.go | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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)) |