Sign inGet started

Kanaalstatus opvragen

Drie server-side reads geven bezette kanalen weer, inspecteren één kanaal en tonen de leden van een presence-kanaal. Authenticeer elk verzoek met je Bird API-sleutel en de key en secret van de Realtime-app.
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY,
  realtime: {
    key: process.env.BIRD_REALTIME_KEY,
    secret: process.env.BIRD_REALTIME_SECRET,
  },
});

Welke kanalen zijn bezet

const { data } = await bird.realtime.channels.list(appId, { prefix: "presence-" });

for (const channel of data) {
  console.log(channel.name);
}
Een kanaal verschijnt in de lijst zolang ten minste één verbinding geabonneerd is. Kanalen worden niet apart aangemaakt of geregistreerd, dus lege kanalen verschijnen niet. Gebruik prefix om het resultaat te beperken tot een groep zoals presence- of orders-.
Het antwoord is niet gepagineerd en retourneert elk bezet kanaal in één live snapshot. Zie Realtime-kanalen ophalen.

Eén kanaal inspecteren

const channel = await bird.realtime.channels.get(appId, "presence-lobby", {
  include: ["member_count"],
});

if (!channel.occupied) return; // nobody is listening; skip the work
Een onbekende of ongebruikte naam retourneert 200 OK met occupied: false. Gebruik dit resultaat om werk over te slaan wanneer geen verbinding het kan ontvangen. Zie Een Realtime-kanaal ophalen.

Tellingen, via include

include is herhaalbaar en accepteert precies twee waarden:
  • member_count is het aantal unieke leden en werkt alleen op presence-kanalen.
  • connection_count is het aantal verbindingen dat op het kanaal is geabonneerd en vereist de verbindingstellingsinstelling van de app.
Elke andere waarde retourneert 400 Bad Request. De API retourneert ook 400 Bad Request voor member_count op een niet-presence-kanaal, een lijstverzoek zonder presence-prefix, of connection_count wanneer verbindingstelling is uitgeschakeld.
Het opvragen van attributen telt als één extra bericht voor het verbruik. Laat ze weg wanneer occupied je vraag beantwoordt.
Eén lid kan meerdere verbindingen hebben. Een ruimte met drie personen die elk twee tabbladen open hebben, rapporteert een member_count van 3 en een connection_count van 6. Presence-kanalen legt het verschil uit.

Wie is aanwezig

const { members } = await bird.realtime.channels.members(appId, "presence-lobby");

for (const member of members) {
  console.log(member.member_id);
}
Het antwoord bevat alleen lid-ID's. member_info wordt aan geabonneerde clients geleverd en is niet beschikbaar via deze REST-bewerking. Koppel de ID's aan je eigen records om namen of avatars weer te geven. Zie Kanaalleden ophalen.

Status lezen terwijl je publiceert

Gebruik bij het publiceren include om dezelfde tellingen voor elk doelkanaal op publicatietijdstip te retourneren. Zie Kanaalstatus lezen terwijl je publiceert.

Momentopnamegedrag

Elk antwoord is een momentopname en kan direct verouderd raken. Gebruik het voor eenmalige beslissingen in plaats van te pollen voor continue status.
Abonneer voor continue status een endpoint op de Realtime-webhookgroepen. realtime.channel_existence rapporteert bezette en verlaten kanalen, realtime.presence rapporteert ledenwisselingen en realtime.connection_count rapporteert wijzigingen in het aantal verbindingen. Gebruik kanaalstatus-reads om je opgeslagen weergave te initialiseren of te reconciliëren.

Volgende stappen

Gerelateerde bronnen

Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.

Probeer de oefening en ontvang een implementatieoverzicht