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 (
"daydev.org/shipsgs/internal/config"
"daydev.org/shipsgs/internal/player"
"daydev.org/shipsgs/internal/utils"
)
@ -14,6 +15,14 @@ type GameServer struct {
maxPlayers 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) {
@ -29,7 +38,11 @@ func (m *GameServer) Init(logger *utils.Logger, config *config.S_Config) {
}
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() {

@ -1,9 +1,14 @@
package player
import "github.com/gorilla/websocket"
type Player struct {
Name string `json:"Name"`
Password string `json:"Password"`
//Connection WS variable TODO
Conn *websocket.Conn
AuthString string `json:"AuthString"`
Level string `json:"Level"` // hidden from user, for balancing purposes
@ -14,4 +19,6 @@ type Player struct {
Won int `json:"Won"`
Lost int `json:"Lost"`
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"
"net/http"
"daydev.org/shipsgs/internal/player"
"github.com/gorilla/websocket"
)
@ -27,6 +28,9 @@ 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)
@ -36,6 +40,12 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
return
}
player := player.Player{
Conn: conn,
}
log.Println(r.RemoteAddr)
for {
messageType, p, err := conn.ReadMessage()
if err != nil {
@ -48,7 +58,6 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
}
}
fmt.Fprintf(w, "hello")
}
func setupRoutes() {

Loading…
Cancel
Save