İçeriğe atla

Fonksiyonlar

createRoom()

Ball2D servisiyle bir odayı kabul eder, host'unu başlatır ve odayla sonuçlanır.

createRoom() ayarlarınızı doğrular, servisten odayı kabul etmesini ister, motoru yükler, sinyalleşmeye bağlanır ve servis işleminizi host olarak onayladığında sonuçlanır. Herhangi bir adım başarısız olursa reddeder ve başlattığı her şeyi temizler.

Node.js

createRoom()

fonksiyon
createRoom(config: NodeRoomConfig, creation?: CreateRoomOptions): Promise<NodeRoom>

Başlatmanın tamamı 15 saniye içinde tamamlanmalıdır. Eksik veya hatalı biçimlendirilmiş bir API anahtarı, başka herhangi bir ayardan önce ve motor veya ağa dokunulmadan önce bildirilir.

HataŞununla reddedilir
Eksik veya hatalı biçimlendirilmiş apiKeyTypeError: A valid API key is required.
serviceOrigin HTTPS değilse ve kendi makineniz değilseTypeError
Geçersiz bir oda ayarıAyarı adlandıran bir Error
Servis odayı reddederseRoomAdmissionError
Başlatma 15 saniyeden uzun sürerseTimeoutError adlı bir DOMException
creation.signal, başlatma sırasında iptal edilirseSinyalin reason'ı

Parametreler

configNodeRoomConfigzorunlu
Oda ayarları ve apiKey'iniz. Bkz. NodeRoomConfig.
İsteğe bağlı. Başlatmayı iptal etmek için { signal } geçirin.

Döndürür

Promise<NodeRoom>Host yetkisi onaylandığında çalışan odayla sonuçlanır.

host.mjs
import {
  createRoom,
  RoomAdmissionError,
} from 'ball2d/node';

try {
  const room = await createRoom({
    apiKey: process.env.BALL2D_API_KEY,
    roomName: 'Evening football',
    noPlayer: true,
    maxPlayers: 12,
    public: true,
  });
  console.log(room.roomLink);
} catch (error) {
  if (error instanceof RoomAdmissionError) {
    console.error(error.status, error.message);
  } else throw error;
}
Yavaş başlatmayı iptal et
const room = await createRoom(config, {
  signal: AbortSignal.timeout(10_000),
});

NodeRoomConfig

İçe aktarmaball2d/node

interface NodeRoomConfig extends RoomConfig
serviceOriginstring
Kullanılacak Ball2D servisi. Varsayılan olarak https://ball2d.com. Yerel geliştirme için http://localhost, http://127.0.0.1 ve http://[::1] hariç HTTPS olmalıdır ve yol, sorgu veya kimlik bilgisi içermemelidir. Özel bir origin, eşleşen bir Ball2D dağıtımı sunmalıdır.
apiKeystringzorunlu
API anahtarınız: b2d_ ardından 64 küçük harfli onaltılık karakter. Sadece serviceOrigin'e gönderilir.

NodeRoom

İçe aktarmaball2d/node

type NodeRoom = Room & { readonly closed: Promise<void>; }

createRoom()'un Node.js'de sonuçlandığı değer: her Room özelliği, metodu ve olayı, artı closed.

closed

özellik
room.closed: Promise<void>
salt okunur

Oda kapandıktan ve işleminiz host'un kullandığı her şeyi serbest bıraktıktan sonra sonuçlanır: simülasyon, eşler arası bağlantılar ve servis yetkilendirmesi. Odanın bağlantısının zaman aşımına uğramasını beklememesi için çıkmadan önce bunu bekleyin.

Yalnızca eş taşımasının kendisini kapatma başarısız olursa reddeder.

JavaScript
room.close();
await room.closed;
process.exit(0);

Ayarlar

RoomConfig

İçe aktarmaball2d

Her iki girişin de paylaştığı ayarlar. Bilinmeyen anahtarlar reddedilir, böylece bir yazım hatası göz ardı edilmek yerine başlatmada başarısız olur.

interface RoomConfig
noPlayerboolean
false olduğunda (varsayılan), host playerName ile adlandırılan bir yönetici olarak oyuncu 0 slotunu alır. Tamamen kodla çalışan bir oda için true olarak ayarlayın. sendChat() host oyuncusuna gerek duyar.
playerNamestring
Host oyuncusunun adı, 1–24 karakter. Varsayılan olarak Host. Yalnızca noPlayer false olduğunda kullanılır.
roomNamestring
Oda listesinde gösterilen ad, 1–64 karakter. Varsayılan olarak Headless Room.
maxPlayersnumber
Odanın kabul ettiği oyuncu sayısı, host oyuncusu dahil. Bir tam sayı; 2–30 aralığı dışındaki değerler bu aralığa sabitlenir. Varsayılan olarak 12.
passwordstring
Oyuncuların katılmak için girmesi gereken parola, en fazla 64 karakter. Boş veya belirtilmemişse parola yok demektir. Daha sonra setPassword() ile değiştirin.
publicboolean
Odayı ball2d.com üzerinde herkese açık olarak listeler. Varsayılan olarak false: oda yalnızca bağlantısıyla erişilebilir.
stadiumstring
Başlangıç için stadyum **kaynak metni**, bir stadyum adı değil. Varsayılan arenayla başlamak için atlayın, ardından paketle gelen bir stadyumu adıyla seçmek için setDefaultStadium() çağırın.
Oda listesinde ilan edilen konum. Atlarsanız servis, gördüğü konumu kullanır. Yalnızca ilan amaçlıdır; odanın nerede çalışacağını belirlemez.

CreateRoomOptions

İçe aktarmaball2dball2d/node

signalAbortSignal
Yalnızca başlatmayı iptal eder. Açıldıktan sonra döndürülen odayı açıkça kapatın.

RoomGeo

Adıyla dışa aktarılmaz; onu döndüren değerler üzerinden erişin.

interface RoomGeo

Genel keşif konumu; asla bir yönlendirme veya yetkilendirme iddiası değildir.

codestringzorunlu
İki harfli ülke kodu, örneğin DE. Büyük/küçük harfe duyarsız.
latnumberzorunlu
Enlem, −90 ile 90 arası.
lonnumberzorunlu
Boylam, −180 ile 180 arası.

Tarayıcı

Tarayıcıda createRoom()

fonksiyon
createRoom(config?: RoomConfig, options?: CreateRoomOptions): Promise<Room>

Tarayıcı girişi, bir Ball2D dağıtımı tarafından sunulan bir sayfadan bir odayı host eder. Sayfanın kendi origin'inin servisini, motorunu ve stadyum dosyalarını kullanır, tarayıcı kabul politikasını izler ve asla API anahtarı almaz. Bkz. Tarayıcı girişi.

Parametreler

İsteğe bağlı oda ayarları. Bkz. RoomConfig. Bir apiKey, bilinmeyen bir ayar olarak reddedilir.
İsteğe bağlı. Başlatmayı iptal etmek için { signal } geçirin.

Döndürür

Promise<Room>Çalışan odayla sonuçlanır.

page.js
import { createRoom } from 'ball2d';

const room = await createRoom({
  roomName: 'Practice',
});