İçeriğe atla

İşletme

Ü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:

JavaScript
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 onError mesajı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. onGameTick iş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.