package main import ( "code.google.com/p/go.net/websocket" "flag" "log" "math/rand" "net/http" "sync" "time" ) var addr = flag.String("addr", ":8666", "http service address") var tick = flag.Int("tick", 33, "") var verbose = flag.Bool("verbose", false, "") var width = flag.Float64("width", 800, "width of field") var height = flag.Float64("height", 550, "height of field") var delta float64 var idg *IdGenerator type MapLock struct { m map[string]*game sync.RWMutex } var games MapLock func main() { rand.Seed(time.Now().UnixNano()) flag.Parse() games = MapLock{m: make(map[string]*game)} idg = NewIdGenerator() delta = float64(*tick) / 1000 http.Handle("/ws/", websocket.Handler(addPlayer)) http.Handle("/game/start/", JsonHandler(startGame)) http.Handle("/game/list/", JsonHandler(listGames)) http.HandleFunc("/game/stop/", stopGame) err := http.ListenAndServe(*addr, nil) if err != nil { log.Fatal("unable to start server") } }