Üretimde çalıştırın
Uzun süre çalışan bir host için desteklenen çalışma zamanları, gizli bilgiler, kapatma, ağ ve izleme.
Çalışma zamanı
Hostları Node.js 24 veya üzerinde çalıştırın. Yerel taşıma katmanı, macOS (Apple silicon) üzerinde Node.js 24 ile doğrulanmıştır. Diğer işletim sistemleri henüz doğrulanmamıştır: buna güvenmeden önce platformunuzu, başka ağlardan katılan gerçek oyuncular dahil olmak üzere test edin. Bun, aynı paketi bir uyumluluk hedefi olarak çalıştırır.
Paket kendi kendine yeterlidir. Motoru, WebAssembly fizik çekirdeğini ve paket içindeki stadyumları içerir; tarayıcıya, postinstall adımına veya derlemeye gerek duymaz.
Gizli bilgiler
API anahtarını platformunuzun gizli bilgi deposu veya bir ortam değişkeni aracılığıyla sağlayın. İmajlara gömmeyin, commit etmeyin veya günlüklemeyin. Diğerlerini durdurmadan birini iptal edebilmek için dağıtım başına bir anahtar kullanın ve bir anahtarın süresi dolmadan önce yerine geçecek olanı oluşturun.
Anahtar başına bir oda
Bir anahtar aynı anda bir oda, bir hesap ise iki oda çalıştırır. Anahtar başına en fazla bir host süreci çalıştırın; ilk oda açıkken aynı anahtarla ikinci bir süreç reddedilir. Bkz. Kabul ve sınırlar.
Ağ
Oyuncular hostunuza doğrudan WebRTC üzerinden bağlanır. Sunucunuzun Ball2D servisine giden HTTPS ve WebSocket erişimine ihtiyacı vardır ve oyuncularla WebRTC bağlantıları kurabilmesi gerekir. Ball2D oyunu aktarmaz (relay etmez), bu nedenle doğrudan bağlantıları engelleyen ağlar oyuncuların katılmasını önleyebilir. Oyuncularınızın kullandığı ağlardan test edin.
Kapatma
Süreç yöneticilerinin ve konteyner platformlarının gönderdiği sinyal olan SIGTERM'i ve yerel çalıştırmalar için SIGINT'i işleyin. Odayı kapatın ve temizlemeyi bekleyin:
for (const signal of ['SIGINT', 'SIGTERM']) {
process.once(signal, async () => {
room.close();
await room.closed;
process.exit(0);
});
}SIGTERM ile zorla sonlandırma arasında sürece birkaç saniye tanıyın; temizleme genellikle anındadır.
Odayı erişilebilir tutun
Host, servis bağlantısını kaybederse veya anahtarı değişirse oda sona erer. Üretimdeki bir host bunu fark etmeli ve yeni bir oda açmalıdır: bkz. Bir odayı çevrimiçi tutma ve sürecin kendisini yeniden başlatmak için Bir süreç yöneticisi altında çalıştırma.
İzleyin
- Her
onErrormesajını oda kimliğiyle birlikte kaydedin. - Olay döngüsünü izleyin. Sürecinizi yarım saniyeden uzun süre bloke etmek maçı duraklatır ve
Host scheduler stalled; match paused.bildirir.onGameTickişleyicilerini kısa tutun ve kayıt yükleme gibi ağır işleri tick dışına taşıyın. - Bir oda açıldığında oda bağlantısını kaydedin, böylece bir odayı günlüklerinizden bulabilirsiniz.
Yükseltme
Bir host ve oyuncuları aynı motoru çalıştırmalıdır. ball2d.com motorunu güncellediğinde, eşleşen SDK sürümünü yükleyin ve yeniden dağıtın; değişiklik günlüğü bunun ne zaman gerektiğini belirtir.