How moth1995/open-eleven-server works
OpenEleven is a reverse-engineered PES online server, with separate executables and profiles for four PC titles. Its main client journey starts at the gate, discovers other services, completes HTTP game-ID authentication, then authenticates over TCP and uses account/player, lobby, room, match, and chat services. The graph follows the documented transport and dispatch flow and includes persistence and registration. Some subsystem links rely on README descriptions because their implementation was not sampled.
Main entry points: CommandDispatcher.cs Command dispatch · Hub.cs Shared session and room hub · GameEndpoints.cs HTTP endpoints · GameConnection.cs Game connection
Components 23
Server runtime
- Title executables
src/OpenEleven.Pes2010Pc/Program.cs - Server host
src/OpenEleven.Server/OpenElevenServerHost.cs - Service listeners
src/OpenEleven.Server/Transport/GameListener.cs - Game connection
src/OpenEleven.Server/Transport/GameConnection.cs - Command dispatch
src/OpenEleven.Server/Dispatch/CommandDispatcher.cs
Wire protocol
- Protocol codecs
src/OpenEleven.Server/Transport/ProtocolCodecs.cs - Packet and KV codec
src/OpenEleven.Protocol/Framing/PacketCodec.cs
Identity and accounts
- Gate handlers
src/OpenEleven.Server/Handlers/GateHandlers.cs - Account and player
src/OpenEleven.Server/Handlers/AccountHandlers.cs - HTTP endpoints
src/OpenEleven.Server/Web/GameEndpoints.cs - Game-ID authentication
src/OpenEleven.Server/Web/GameIdAuthService.cs - Account registration
src/OpenEleven.Server/Web/RegistrationService.cs - Pending login state
src/OpenEleven.Server/State/PendingLoginStore.cs
Game services
- Lobby handlers
src/OpenEleven.Server/Handlers/LobbyHandlers.cs - Room handlers
src/OpenEleven.Server/Handlers/RoomHandlers.cs - Match handlers
src/OpenEleven.Server/Handlers/MatchingHandlers.cs - Chat handlers
src/OpenEleven.Server/Handlers/TextChatHandlers.cs - Shared session and room hub
src/OpenEleven.Server/State/Hub.cs
Persistence
- Data repositories
src/OpenEleven.Data/Repositories/Repositories.cs - Game database context
src/OpenEleven.Data/GameDbContext.cs
Other components
- PES client
- SQLite or MySQL
- Registration user
Connections 28
- Title executables → Server host: starts
- Server host → Service listeners: starts services
- PES client → Service listeners: connects
- Service listeners → Game connection: accepts sockets
- Game connection → Protocol codecs: encodes packets
- Protocol codecs → Packet and KV codec: uses framing and KV
- Game connection → Command dispatch: dispatches commands
- Command dispatch → Gate handlers: invokes
- Command dispatch → Account and player: invokes
- Command dispatch → Lobby handlers: invokes
- Command dispatch → Room handlers: invokes
- Command dispatch → Match handlers: invokes
- Command dispatch → Chat handlers: invokes
- PES client → HTTP endpoints: requests HTTP
- HTTP endpoints → Game-ID authentication: delegates auth
- HTTP endpoints → Account registration: delegates registration
- Registration user → HTTP endpoints: submits registration
- Game-ID authentication → Pending login state: opens login window
- Account and player → Pending login state: validates pending login
- Account and player → Data repositories: reads and writes
- Account registration → Data repositories: creates account
- Gate handlers → Shared session and room hub: reads service state
- Lobby handlers → Shared session and room hub: reads and updates
- Room handlers → Shared session and room hub: manages rooms and watches
- Match handlers → Shared session and room hub: updates match state
- Chat handlers → Shared session and room hub: broadcasts chat
- Data repositories → Game database context: queries and saves
- Game database context → SQLite or MySQL: persists data