You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.3 KiB

1 year ago
package server
import (
"context"
"fmt"
"log"
"net/http"
"daydev.org/shipsgs/internal/player"
"github.com/gorilla/websocket"
1 year ago
)
type Health struct {
Health string `json:"Health"`
Lobbies int `json:"Lobbies"`
}
func health(w http.ResponseWriter, r *http.Request) {
}
1 year ago
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"
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
}
}
1 year ago
}
func setupRoutes() {
http.HandleFunc("/", index)
http.HandleFunc("/ws", wsEndpoint)
}
func SetupAndRun(port string, sighup *chan bool) {
setupRoutes()
srv := &http.Server{Addr: port}
go func() {
<-*sighup
log.Println("Shutting down the webserver")
srv.Shutdown(context.TODO())
}()
log.Fatal(srv.ListenAndServe())
}