package server import ( "context" "fmt" "log" "net/http" "daydev.org/shipsgs/internal/gameServer" "daydev.org/shipsgs/internal/player" "github.com/gorilla/websocket" ) var GS *gameServer.GameServer type Health struct { Health string `json:"Health"` Lobbies int `json:"Lobbies"` } func health(w http.ResponseWriter, r *http.Request) { } func index(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "index") } func wsEndpoint(w http.ResponseWriter, r *http.Request) { var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true // DANGEROUS. USING FOR DEV PURPOSES ONLY }, } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(r.RemoteAddr) log.Println(err) return } player := &player.Player{ Conn: conn, } player.Name = "Yale" GS.Connection <- player /* log.Println(r.RemoteAddr) for { messageType, p, err := conn.ReadMessage() if err != nil { log.Println(err) return } if err := conn.WriteMessage(messageType, p); err != nil { log.Println(err) return } } */ } func setupRoutes() { http.HandleFunc("/", index) http.HandleFunc("/ws", wsEndpoint) } func SetupAndRun(port string, sighup *chan bool, gs *gameServer.GameServer) { setupRoutes() GS = gs srv := &http.Server{Addr: port} go func() { <-*sighup log.Println("Shutting down the webserver") srv.Shutdown(context.TODO()) }() log.Fatal(srv.ListenAndServe()) }