Compare commits

...

5 Commits

Author SHA1 Message Date
Evgeny Kovalev b26a6cf65e Server now adds players 1 year ago
Evgeny Kovalev 1c315072a6 Initial Room functionality 1 year ago
Evgeny Kovalev 0600cb66ab GameServer now supports connections 1 year ago
Evgeny Kovalev 4bc24431d2 Player now supports WS 1 year ago
Evgeny Kovalev 66f2cf6cc2 Fixed CORS for WS 1 year ago
  1. 13
      internal/gameServer/gameServer.go
  2. 7
      internal/player/player.go
  3. 13
      internal/room/room.go
  4. 11
      internal/server/server.go

@ -2,6 +2,7 @@ package gameServer
import ( import (
"daydev.org/shipsgs/internal/config" "daydev.org/shipsgs/internal/config"
"daydev.org/shipsgs/internal/player"
"daydev.org/shipsgs/internal/utils" "daydev.org/shipsgs/internal/utils"
) )
@ -14,6 +15,14 @@ type GameServer struct {
maxPlayers int maxPlayers int
currentPlayers int currentPlayers int
// Channel to register players and their connection
join chan *player.Player
// Storing connected Players
playerConns map[*player.Player]bool
// Channel to un register players
} }
func (m *GameServer) Init(logger *utils.Logger, config *config.S_Config) { func (m *GameServer) Init(logger *utils.Logger, config *config.S_Config) {
@ -29,7 +38,11 @@ func (m *GameServer) Init(logger *utils.Logger, config *config.S_Config) {
} }
func (m *GameServer) Update() { func (m *GameServer) Update() {
//p := <-m.join
// If room doesnt exist, spawn it, name it
//Add a player to a room
//
} }
func (m *GameServer) Scheduled1S() { func (m *GameServer) Scheduled1S() {

@ -1,9 +1,14 @@
package player package player
import "github.com/gorilla/websocket"
type Player struct { type Player struct {
Name string `json:"Name"` Name string `json:"Name"`
Password string `json:"Password"` Password string `json:"Password"`
//Connection WS variable TODO
Conn *websocket.Conn
AuthString string `json:"AuthString"` AuthString string `json:"AuthString"`
Level string `json:"Level"` // hidden from user, for balancing purposes Level string `json:"Level"` // hidden from user, for balancing purposes
@ -14,4 +19,6 @@ type Player struct {
Won int `json:"Won"` Won int `json:"Won"`
Lost int `json:"Lost"` Lost int `json:"Lost"`
WinRate int `json:"WinRate"` WinRate int `json:"WinRate"`
Health int `json:"Health"`
} }

@ -0,0 +1,13 @@
package room
import "daydev.org/shipsgs/internal/player"
type Room struct {
Name string `json:"Name"`
//Players
players map[*player.Player]bool
//Room state
}

@ -6,6 +6,7 @@ import (
"log" "log"
"net/http" "net/http"
"daydev.org/shipsgs/internal/player"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
) )
@ -27,6 +28,9 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
var upgrader = websocket.Upgrader{ var upgrader = websocket.Upgrader{
ReadBufferSize: 1024, ReadBufferSize: 1024,
WriteBufferSize: 1024, WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool {
return true // DANGEROUS. USING FOR DEV PURPOSES ONLY
},
} }
conn, err := upgrader.Upgrade(w, r, nil) conn, err := upgrader.Upgrade(w, r, nil)
@ -36,6 +40,12 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
return return
} }
player := player.Player{
Conn: conn,
}
log.Println(r.RemoteAddr)
for { for {
messageType, p, err := conn.ReadMessage() messageType, p, err := conn.ReadMessage()
if err != nil { if err != nil {
@ -48,7 +58,6 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
} }
} }
fmt.Fprintf(w, "hello")
} }
func setupRoutes() { func setupRoutes() {

Loading…
Cancel
Save