0Pricing
Supabase Backend as a Service · Lekcja

Kanały obecności i rozgłaszania

Wyjdź poza zmiany w tabelach dzięki Supabase Realtime Presence, aby śledzić, kto jest online, oraz Broadcast, aby wysyłać ulotne wiadomości między klientami.

Kanały obecności i rozgłaszania to bezpłatna lekcja Supabase Backend as a Service na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Supabase Backend as a Service, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Supabase Backend as a Service zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Two More Realtime Features

Besides Postgres change streams, Supabase Realtime offers Presence (track online users) and Broadcast (send transient messages). Neither requires a database table.

What Is Presence?

Presence lets each client share small state (like a username or cursor position) and see everyone else's state in the same channel in real time.

Creating a Channel

A channel is a named room clients join.

const room = supabase.channel('room-1', {
  config: { presence: { key: 'user-42' } }
});

Tracking Presence

After subscribing, call track to publish your state to everyone in the channel.

room.subscribe(async (status) => {
  if (status === 'SUBSCRIBED') {
    await room.track({ name: 'Ada', online_at: Date.now() });
  }
});

Reading Who Is Online

Listen for sync events and read the current presence state of all members.

room.on('presence', { event: 'sync' }, () => {
  const state = room.presenceState();
  console.log('Online:', Object.keys(state).length);
});

Join and Leave Events

Presence emits join and leave events so you can animate users appearing and disappearing.

room.on('presence', { event: 'join' }, ({ newPresences }) => {
  console.log('Joined:', newPresences.length);
});

What Is Broadcast?

Broadcast sends low-latency messages to everyone in a channel without storing them. Great for cursors, typing indicators, and game moves.

Sending a Broadcast

Use send with a custom event name and payload.

room.send({
  type: 'broadcast',
  event: 'cursor',
  payload: { x: 120, y: 80 }
});

Receiving a Broadcast

Subscribe to the same event name to handle incoming messages.

room.on('broadcast', { event: 'cursor' }, ({ payload }) => {
  console.log('Cursor at', payload.x, payload.y);
});

Cleaning Up

Always remove channels when a component unmounts to free connections.

function cleanup(channel, supabase) {
  supabase.removeChannel(channel);
  return 'removed';
}
console.log(cleanup('chan', { removeChannel: () => {} }));

Choosing the Right Tool

Use Postgres changes for persisted data, Presence for online status, and Broadcast for fast disposable messages.

Quick Check

Test your understanding of Presence and Broadcast.

Recap

You learned to track online users with Presence and send ephemeral messages with Broadcast, plus when to use each versus Postgres change streams, and to clean up channels.

Często zadawane pytania

Czy lekcja „Kanały obecności i rozgłaszania” jest bezpłatna?

Tak — pełny tekst „Kanały obecności i rozgłaszania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Supabase Backend as a Service, przejdź na CoddyKit PRO. Kurs Supabase Backend as a Service zawiera 4 lekcji w sumie.

Co nauczysz się w „Kanały obecności i rozgłaszania”?

Wyjdź poza zmiany w tabelach dzięki Supabase Realtime Presence, aby śledzić, kto jest online, oraz Broadcast, aby wysyłać ulotne wiadomości między klientami. Ćwiczysz Supabase Backend as a Service z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Supabase Backend as a Service?

Nie wymagamy żadnego doświadczenia. Supabase Backend as a Service w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Kanały obecności i rozgłaszania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Supabase Backend as a Service?

Tak. Każda lekcja Supabase Backend as a Service zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Poznawanie subskrypcji czasu rzeczywistego
  2. Subskrybowanie zmian w tabelach
  3. Tworzenie funkcji czatu na żywo
  4. Kanały obecności i rozgłaszania
← Powrót do Supabase Backend as a Service