diff --git a/go.mod b/go.mod index 8a0cdf0..0911be8 100644 --- a/go.mod +++ b/go.mod @@ -4,4 +4,4 @@ go 1.17 require github.com/xlab/closer v1.1.0 -require github.com/cristalhq/aconfig v0.18.3 // indirect +require github.com/gorilla/websocket v1.5.0 diff --git a/internal/config/config.go b/internal/config/config.go index 1ef16d4..5525a95 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -12,6 +12,9 @@ const ConfigPath string = "config.json" type S_Config struct { Address string `json:"Address"` AdminSecret string `json:"AdminSecret"` + + MaxLobbies int `json:"MaxLobbies"` + MaxPlayers int `json:"MaxPlayers"` } var Config S_Config diff --git a/internal/server/server.go b/internal/server/server.go index ab3dd53..11573b8 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -5,14 +5,49 @@ import ( "fmt" "log" "net/http" + + "github.com/gorilla/websocket" ) +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, + } + + conn, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Println(r.RemoteAddr) + log.Println(err) + return + } + + 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 + } + } + fmt.Fprintf(w, "hello") }