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.
roomNamestring
Oda listesinde gösterilir. 1–64 karakter.
publicboolean
Odayı ball2d.com'da listeler. Listelenmeyen odalara yalnızca bağlantılarıyla erişilebilir.
maxPlayersnumber
Host oyuncusu dahil kabul edilen oyuncu sayısı. 2–30 aralığında sınırlanır.
noPlayerboolean
Odayı host oyuncusu olmadan çalıştırır. false olduğunda süreciniz oyuncu 0'dır, bir yönetici.
playerNamestring
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.
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.onPlayerJoingibi olaylar ne olduğunu bildirir. İşleyicilerinizdeki hatalar sürecinize değilonError'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
| Neden | onError neyi bildirir |
|---|---|
close() çağırırsınız | Hiçbir şey |
| Host'un servise olan bağlantısı kesilir veya üç dakika boyunca sessiz kalır | Host connection ended |
| API anahtarı iptal edilir | API key revoked |
| API anahtarının süresi dolar | Room 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:
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.