new server

This commit is contained in:
Smile Rex
2026-01-14 23:10:23 +03:00
parent 83f356cea9
commit c1df49fde1
12 changed files with 342 additions and 69 deletions

View File

@@ -1,17 +1,15 @@
package controllers
import (
"bytes"
"log"
"net/http"
"server/models"
"github.com/gorilla/websocket"
"sync"
)
type Hub struct {
Players map[uint32]*models.Player
ServerBuffer []byte
Players map[uint32]*models.Player
Mu sync.RWMutex
}
func NewHub() *Hub {
@@ -20,55 +18,9 @@ func NewHub() *Hub {
}
}
func (h *Hub) readLoop(conn *websocket.Conn) {
p := &models.Player{
ID: uint32(len(h.Players) + 1),
Conn: conn,
InputX: 0,
InputZ: 0,
}
log.Println("Player connected:", p.ID)
h.Players[p.ID] = p
defer func() {
delete(h.Players, p.ID)
p.Conn.Close()
log.Println("Player disconnected:", p.ID)
}()
for {
_, data, err := p.Conn.ReadMessage()
if err != nil {
return
}
if len(data) < 8 {
continue
}
buf := bytes.NewReader(data)
log.Println(buf)
}
}
func (h *Hub) ws(w http.ResponseWriter, r *http.Request) {
upgrader := websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool { return true },
}
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return
}
go h.readLoop(conn)
}
func (h *Hub) Start() {
go h.updateWorld()
http.HandleFunc("/ws", h.ws)
log.Println("Server listen port 8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}