package main import ( "embed" "flag" "log" "net/http" ) //go:embed *.html var pages embed.FS var addr = flag.String("listen", ":8080", "http server listen address") var host = flag.String("host", "localhost", "public http server canonical hostname") func main() { flag.Parse() game := newGame() log.Printf("Player link: http://%s/?token=%s", *host, tokenize(game.playerToken)) log.Printf("Host link: http://%s/host.html?token=%s", *host, tokenize(game.hostToken)) go game.run() http.Handle("/", http.FileServer(http.FS(pages))) http.HandleFunc("/player/ws", func(w http.ResponseWriter, r *http.Request) { servePlayerWs(game, w, r) }) http.HandleFunc("/host/ws", func(w http.ResponseWriter, r *http.Request) { serveHostWs(game, w, r) }) log.Fatal(http.ListenAndServe(*addr, nil)) }