How llr104/slgserver works
This repository is a multi-process strategy-game server. A client connects through the gateway, which the README describes as forwarding client messages to login, chat, and game services; account APIs are also exposed by the HTTP service. In the game service, requests cover role and city management, armies, the world map, combat, skills, and alliances, with chat handled separately. MySQL provides persistent storage. The tree and excerpts establish these subsystems, but do not show every service’s route registrations or all controller-to-logic calls, so uncertain wiring is omitted.
Main entry points: server.go WebSocket server · proxyClient.go Service proxy · army.go Game controllers · gateserver.go Gateway service
Components 22
Service entrypoints
- HTTP service
main/httpserver.go - Gateway service
main/gateserver.go - Login service
main/loginserver.go - Chat service
main/chatserver.go - Game service
main/slgserver.go
Messaging transport
- WebSocket server
net/server.go - Message routing
net/router.go - Service proxy
net/proxyClient.go
Accounts
- Account API
server/httpserver/controller/account.go - Account logic
server/httpserver/logic/account.go - Login controller
server/loginserver/controller/account.go - Login model
server/loginserver/model/login.go
Game service
- Chat controller
server/chatserver/controller/chat.go - Chat queue
server/chatserver/logic/queue.go - Game controllers
server/slgserver/controller/army.go - Game logic
server/slgserver/logic/army/army_logic.go - Alliance logic
server/slgserver/logic/union/union_logic.go
State and storage
- Game models
server/slgserver/model/army.go - State managers
server/slgserver/logic/mgr/army_mgr.go - MySQL database
- Database connection
db/conn.go
Other components
- Game client
Connections 26
- Game client → Gateway service: sends messages
- Game client → HTTP service: calls APIs
- Gateway service → WebSocket server: serves connections
- Login service → WebSocket server: serves connections
- Chat service → WebSocket server: serves connections
- Game service → WebSocket server: serves connections
- WebSocket server → Message routing: dispatches messages
- Gateway service → Service proxy: forwards messages
- Service proxy → Login service: connects services
- Service proxy → Chat service: connects services
- Service proxy → Game service: connects services
- HTTP service → Account API: serves requests
- Account API → Account logic: calls logic
- Login service → Login controller: serves requests
- Login controller → Login model: uses model
- Chat service → Chat controller: handles chat
- Chat controller → Chat queue: uses queue
- Game service → Game controllers: handles game requests
- Game controllers → Game logic: calls logic
- Game controllers → Alliance logic: uses alliance logic
- Game controllers → State managers: reads game state
- Game logic → State managers: uses managers
- State managers → Game models: manages entities
- Database connection → MySQL database: opens connection
- Game models → MySQL database: persists state
- Login model → MySQL database: persists accounts