Çok Oyunculu Sunucu
En Parlant~ çok oyunculu aktarma sunucusu, Axum ve socketioxide kullanılarak Rust ile yazılmış hafif bir WebSocket sunucusudur. Socket.IO üzerinden gerçek zamanlı satranç için iki oyuncuyu birbirine bağlar; kalıcı depolama gerektirmez ve minimum kaynak kullanır.
Aktarma sunucusunun kaynak kodu en-parlant-relay deposunda bulunmaktadır.
Neden Kendi Sunucunuzu Barındırmalısınız
Section titled “Neden Kendi Sunucunuzu Barındırmalısınız”Varsayılan aktarma sunucusu kutudan çıktığı gibi çalışır, ancak kendi sunucunuzu çalıştırmak için iyi nedenler vardır:
- Gizlilik — tüm oyun trafiği kendi altyapınızda kalır
- Daha düşük gecikme — daha hızlı hamle iletimi için oyuncularınıza daha yakın bir konuma dağıtın
- Bağımsızlık — varsayılan aktarma sunucusunun çalışma süresine veya erişilebilirliğine bağımlılık olmaz
Dağıtım Seçenekleri
Section titled “Dağıtım Seçenekleri”Fly.io (Önerilen)
Section titled “Fly.io (Önerilen)”Aktarma deposu bir fly.toml yapılandırma dosyası içerir, bu da Fly.io’yu en kolay dağıtım yolu haline getirir. Fly.io’nun ücretsiz katmanı kişisel kullanım için uygundur.
-
Fly CLI’yi yükleyin:
Terminal window curl -L https://fly.io/install.sh | sh -
Kayıt olun veya giriş yapın:
Terminal window fly auth signup# orfly auth login -
Aktarma deposunu klonlayın ve dağıtın:
Terminal window git clone https://github.com/DarrellThomas/en-parlant-relay.gitcd en-parlant-relayfly launchfly deploy
Fly.io, Rust ikili dosyasını derleyecek, dağıtacak ve size your-app-name.fly.dev gibi bir genel URL verecektir.
Kendi Sunucunuzda Barındırma
Section titled “Kendi Sunucunuzda Barındırma”Aktarma sunucusunu kaynak koddan derleyin ve Rust araç zinciri bulunan herhangi bir makinede çalıştırın.
-
Klonlayın ve derleyin:
Terminal window git clone https://github.com/DarrellThomas/en-parlant-relay.gitcd en-parlant-relaycargo build --release -
Sunucuyu çalıştırın:
Terminal window ./target/release/en-parlant-relaySunucu varsayılan olarak 3210 portunu dinler.
-
Üretim kullanımı için, TLS sonlandırmasını yönetmek üzere bir ters proxy (nginx, Caddy veya benzeri) arkasında çalıştırın. Aktarma sunucusu düz WebSocket konuşur — proxy’niz
wss://şifreleme katmanını ekler.
Sunucu çok hafiftir. Oyun odalarını bellekte tutar, iki oyuncu arasındaki hamleleri iletir ve başka hiçbir şey yapmaz. Küçük bir VPS veya hatta bir Raspberry Pi bunu rahatlıkla karşılayabilir.
En Parlant~ Yapılandırması
Section titled “En Parlant~ Yapılandırması”Aktarma sunucunuz çalışmaya başladıktan sonra En Parlant~‘ı ona yönlendirin:
- En Parlant~ içinde Ayarlar’ı açın
- Çok oyunculu aktarma sunucusu URL ayarını bulun
- Sunucunuzun WebSocket uç noktasını girin:
- Fly.io için:
wss://your-app-name.fly.dev - TLS proxy ile kendi sunucunuzda:
wss://relay.yourdomain.com - Yerel geliştirme için:
ws://localhost:3210
- Fly.io için:
Hepsi bu kadar. Uygulama, tüm çok oyunculu oyunlar için sizin aktarma sunucunuzu kullanacaktır.
Sunucu Detayları
Section titled “Sunucu Detayları”Aktarma sunucusunun nasıl çalıştığı hakkında bilinmesi gereken birkaç şey:
-
Oda kodları — Sunucu, karışıklığa yol açmayan bir karakter seti kullanarak 6 karakterlik oyun kodları oluşturur. Birbirine benzeyen karakterler hariç tutulur (kodları sözlü olarak paylaşırken karışıklığı önlemek için
0/O,1/I/Lkullanılmaz). -
Oda temizliği — 30 dakikalık hareketsizlikten sonra odalar otomatik olarak kaldırılır. Boşta kalan odaları temizlemek için her 60 saniyede bir temizlik görevi çalışır.
-
Kalıcı depolama yok — Tüm durum bellekte tutulur. Sunucu yeniden başlarsa aktif odalar kaybolur. Bu tasarım gereğidir — aktarma sunucusu durumsuzdur ve kolayca değiştirilebilir.
-
Minimum kaynak kullanımı — Sunucu çok az CPU ve bellek kullanır. Yalnızca bir oyuncudan Socket.IO olaylarını alır ve diğerine iletir. Oyun mantığı, hamle doğrulaması veya veritabanı yoktur.