Flerspillerserver
En Parlant~ flerspillerrelé er en lettvekts WebSocket-server skrevet i Rust med Axum og socketioxide. Den kobler sammen to spillere for sanntidssjakk over Socket.IO, uten persistent lagring og med minimale ressurskrav.
Kildekoden til reléserveren ligger i en-parlant-relay-repositoriet.
Hvorfor egendrifte
Section titled “Hvorfor egendrifte”Standard reléserver fungerer rett ut av boksen, men det finnes gode grunner til å kjøre din egen:
- Personvern — all spilltrafikk forblir på din egen infrastruktur
- Lavere latens — distribuer nærmere spillerne dine for raskere trekkoverføring
- Uavhengighet — ingen avhengighet av standardreléens oppetid eller tilgjengelighet
Distribusjonsalternativer
Section titled “Distribusjonsalternativer”Fly.io (anbefalt)
Section titled “Fly.io (anbefalt)”Relé-repositoriet inkluderer en fly.toml-konfigurasjonsfil, noe som gjør Fly.io til den enkleste distribusjonsbanen. Fly.ios gratistilbud er tilstrekkelig for personlig bruk.
-
Installer Fly CLI:
Terminal window curl -L https://fly.io/install.sh | sh -
Registrer deg eller logg inn:
Terminal window fly auth signup# orfly auth login -
Klon reléen og distribuer:
Terminal window git clone https://github.com/DarrellThomas/en-parlant-relay.gitcd en-parlant-relayfly launchfly deploy
Fly.io vil bygge Rust-binæren, distribuere den, og gi deg en offentlig URL som your-app-name.fly.dev.
Egendriftet
Section titled “Egendriftet”Bygg reléen fra kildekode og kjør den på en hvilken som helst maskin med en Rust-verktøykjede.
-
Klon og bygg:
Terminal window git clone https://github.com/DarrellThomas/en-parlant-relay.gitcd en-parlant-relaycargo build --release -
Start serveren:
Terminal window ./target/release/en-parlant-relayServeren lytter på port 3210 som standard.
-
For produksjonsbruk bør du kjøre serveren bak en omvendt proxy (nginx, Caddy eller lignende) for å håndtere TLS-terminering. Reléen snakker ren WebSocket — proxyen din legger til
wss://-krypteringslaget.
Serveren er svært lettvekts. Den holder spillrom i minnet, videresender trekk mellom to spillere, og gjør ingenting annet. En liten VPS eller til og med en Raspberry Pi kan håndtere den uten problemer.
Konfigurering av En Parlant~
Section titled “Konfigurering av En Parlant~”Når reléen din kjører, peker du En Parlant~ til den:
- Åpne Settings i En Parlant~
- Finn innstillingen for flerspiller-relé-server-URL
- Skriv inn serverens WebSocket-endepunkt:
- For Fly.io:
wss://your-app-name.fly.dev - For egendriftet med TLS-proxy:
wss://relay.yourdomain.com - For lokal utvikling:
ws://localhost:3210
- For Fly.io:
Det er alt. Appen vil bruke reléen din for alle flerspillerspill.
Serverdetaljer
Section titled “Serverdetaljer”Noen ting å vite om hvordan reléen fungerer:
-
Romkoder — Serveren genererer 6-tegns spillkoder med et entydig tegnsett. Tegn som ligner på hverandre er ekskludert (ingen
0/O, ingen1/I/L) for å unngå forvirring når koder deles muntlig. -
Romopprydding — Rom fjernes automatisk etter 30 minutters inaktivitet. En oppryddingsoppgave kjører hvert 60. sekund for å rydde opp inaktive rom.
-
Ingen persistent lagring — All tilstand ligger i minnet. Hvis serveren starter på nytt, går aktive rom tapt. Dette er tilsiktet — reléen er tilstandsløs og trivielt utbyttbar.
-
Minimale ressurser — Serveren bruker svært lite CPU og minne. Den mottar kun Socket.IO-hendelser fra én spiller og videresender dem til den andre. Det finnes ingen spilllogikk, ingen trekkvalidering, ingen database.