İçeriğe atla

Oda barındırma

Oda yaşam döngüsü

Bir odayı yapılandırın, açın, çalışmasını izleyin ve düzgünce kapatın.

Bir oda, başarılı bir createRoom() çağrısından kapanana kadar yaşar. Host'undan asla daha uzun yaşamaz ve asla el değiştirmez.

Ayarlar

Ayarları createRoom()'a geçirin. Tanınmayan anahtarlar başlatma sırasında hata verir, böylece yazım hataları fark edilmeden geçmez.

apiKeystringzorunlu

API anahtarınız. Yalnızca Node.js.

roomNamestringvarsayılan Headless Room

Oda listesinde gösterilir. 1–64 karakter.

publicbooleanvarsayılan false

Odayı ball2d.com'da listeler. Listelenmeyen odalara yalnızca bağlantılarıyla erişilebilir.

maxPlayersnumbervarsayılan 12

Host oyuncusu dahil kabul edilen oyuncu sayısı. 2–30 aralığında sınırlanır.

noPlayerbooleanvarsayılan false

Odayı host oyuncusu olmadan çalıştırır. false olduğunda süreciniz oyuncu 0'dır, bir yönetici.

playerNamestringvarsayılan Host

Host oyuncusunun adı, 1–24 karakter.

passwordstring

Katılmak için gereklidir. En fazla 64 karakter.

stadiumstring

Başlangıçta kullanılacak stadyum kaynak metni. Hazır bir stadyum kullanmak için oda açıldıktan sonra setDefaultStadium() çağırın.

geoRoomGeo

Oda listesinde gösterilen konum. Yalnızca tanıtım amaçlıdır.

Başlatma

createRoom(), ayarlarınızı ve anahtarınızı doğrular, servisten odayı kabul etmesini ister, motoru yükler ve sinyalleşmeye bağlanır. Yalnızca servis, sürecinizi host olarak onayladığında çözülür ve herhangi bir adım 15 saniye içinde başarısız olursa reddeder. Başarısızlık durumunda başlattığı her şey temizlenir ve geride hiçbir oda kalmaz.

JavaScript
const room = await createRoom(config, {
  signal: AbortSignal.timeout(10_000),
});

İsteğe bağlı signal, yalnızca başlatmayı iptal eder. Oda açıldıktan sonra close() ile durdurun.

Çalışırken

  • setPlayerTeam() gibi komutlar promise döndürür ve çağırdığınız sırayla çalışır. SDK kuralları sıralamayı, kopyaları ve 256 komutluk kuyruğu ele alır.
  • onPlayerJoin gibi olaylar ne olduğunu bildirir. İşleyicilerinizdeki hatalar sürecinize değil onError'a gider.
  • room.signal, nedeni ne olursa olsun oda sona erdiğinde iptal edilir. Zamanlayıcılarınızı ve isteklerinizi buna bağlayın.

Bir odayı ne kapatır

NedenonError neyi bildirir
close() çağırırsınızHiçbir şey
Host'un servise olan bağlantısı kesilir veya üç dakika boyunca sessiz kalırHost connection ended
API anahtarı iptal edilirAPI key revoked
API anahtarının süresi dolarRoom authorization expired

Oyuncular host'un ayrıldığını görür. Hiçbir şey aktarılmaz; bir odayı erişilebilir tutmak için yeni bir oda açın. Bkz. Bir odayı çevrimiçi tutma.

Düzgünce kapatın

Süreciniz durdurulması istendiğinde odayı kapatın, ardından temizliğin tamamlanmasını bekleyin:

JavaScript
for (const signal of ['SIGINT', 'SIGTERM']) {
  process.once(signal, async () => {
    room.close();
    await room.closed;
    process.exit(0);
  });
}

Kapatmak, odanın oda sınırlarınızdaki yerini hemen serbest bırakır. Kapatmadan çıkan bir süreç, servis host'un gittiğini fark edene kadar yerini tutar.