Compare commits

..

2 Commits

Author SHA1 Message Date
Evgeny Kovalev d42b596bf0 added support for WS, add config supports limiting max 1 year ago
Evgeny Kovalev 27601a61ff Base GameServerAdded 1 year ago
  1. 2
      go.mod
  2. 3
      internal/config/config.go
  3. 41
      internal/gameServer/gameServer.go
  4. 35
      internal/server/server.go

@ -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

@ -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

@ -0,0 +1,41 @@
package gameServer
import (
"daydev.org/shipsgs/internal/config"
"daydev.org/shipsgs/internal/utils"
)
type GameServer struct {
Logger *utils.Logger
Config *config.S_Config
maxLobbies int
currentLobbies int
maxPlayers int
currentPlayers int
}
func (m *GameServer) Init(logger *utils.Logger, config *config.S_Config) {
m.Logger = logger
m.Config = config
m.maxLobbies = m.Config.MaxLobbies
m.maxPlayers = m.Config.MaxPlayers
m.currentLobbies = 0
m.currentPlayers = 0
}
func (m *GameServer) Update() {
}
func (m *GameServer) Scheduled1S() {
}
func (m *GameServer) Scheduled10S() {
}

@ -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")
}

Loading…
Cancel
Save