35 lines
810 B
Go
35 lines
810 B
Go
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))
|
|
}
|