Files
MrMahoandClaude Opus 5.5 4e333c8250 0.3.0: Serverliste und BSO-Konten
- Heartbeat an die Website, Abmelden beim Beenden (--private, --public-address, --description, --master)
- Spiel-Tickets pruefen (Signatur der Website), Name aus dem Konto, --no-auth fuer LAN
- IPv4 und IPv6, Protokoll 2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:10:51 +01:00

58 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BSO Server
Dedizierter Server für **BSO – Bus Simulator Online** (Multiplayer-Mod für Bus-Simulator 2012).
- Mod: [BSO-Mod](https://git.mbm.wtf/MrMaho/BSO-Mod)
- Launcher: [BSO-Launcher](https://git.mbm.wtf/MrMaho/BSO-Launcher)
- Website, Konten und Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website)
Nimmt Spieler an (Hello → Welcome), merkt sich den letzten Zustand jedes Spielers und reicht ihn an alle anderen
weiter. Eine einzige Schleife fragt alle Verbindungen ab – ohne Sperren. Protokoll wie bei MSCO:
`[int Länge][byte Typ][Daten]` über TCP.
`Shared\*.cs` (Protokoll, `PacketReader`, `Connection`) sind **dieselben Dateien wie in BSO-Mod** – bei Änderungen in
beiden Repos gleich halten und bei inkompatiblen Änderungen `Protocol.Version` erhöhen.
## Starten
Voraussetzung: .NET 10 Runtime.
```powershell
BSO.Server.exe --bot # Port 7777, mit Testbot
BSO.Server.exe --port 7777 --name "Mein Server" --max 8
BSO.Server.exe --probe host[:port] # Test: verbindet sich wie die Mod, zeigt was ankommt
```
Für Spieler von außen Port **7777/TCP** im Router/Firewall freigeben.
| Option | |
|---|---|
| `--name`, `--description` | Anzeige im Server-Browser |
| `--max` | Maximale Spielerzahl (Standard 8) |
| `--private` | Nicht in der Serverliste – Beitritt nur per Adresse |
| `--public-address host` | Adresse für die Serverliste (hinter NAT/Proxy oder wenn die Website im selben Netz läuft) |
| `--master url` | andere Website (Standard `https://bso.mbm.wtf`, Tests: `http://localhost:5080`) |
| `--no-auth` | Spieler brauchen kein BSO-Konto (LAN, Tests) |
| `--bot` | Testbot |
**Serverliste:** Der Server meldet sich jede Minute bei der Website, beim `stop` ab. Gelistet wird er erst, wenn die
Website ihn von außen erreicht (sie fragt ihn wie die Mod ab) – das Log sagt, ob es geklappt hat.
**BSO-Konto:** Spieler brauchen ein Spiel-Ticket aus dem Launcher (signiert von der Website, 24 h gültig). Der Server
prüft die Signatur mit dem öffentlichen Schlüssel der Website (`ticket-key.xml` wird zwischengespeichert), der Name
im Spiel kommt aus dem Konto. Ein Konto kann nur einmal gleichzeitig auf einem Server sein.
| Konsole | |
|---|---|
| `status` | Spieler mit Position, Modus und Tempo |
| `bot` | Testbot an/aus – fährt als „Bus“ 30 km/h Kreise (20 m) um den ersten Spieler |
| `kick <id> [grund]` | Spieler entfernen |
| `stop` | Server beenden |
## Bauen
```powershell
dotnet publish -c Release -o publish
.\release.ps1 -Product server -Version 0.2.0 -File BSO-Server.zip -Changelog "..."
```