0Pricing
Supabase Backend as a Service · Aula

Canais de Presença e Transmissão

Vá além das alterações em tabelas com a Presença em Tempo Real do Supabase para acompanhar quem está online e use a Transmissão para enviar mensagens efêmeras entre clientes.

Canais de Presença e Transmissão é uma aula grátis de Supabase Backend as a Service no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Supabase Backend as a Service, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Supabase Backend as a Service inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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.

Perguntas Frequentes

A aula “Canais de Presença e Transmissão” é grátis?

Sim — o texto completo de “Canais de Presença e Transmissão” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Supabase Backend as a Service, atualize para CoddyKit PRO. O curso de Supabase Backend as a Service inclui 4 aulas no total.

O que vou aprender em “Canais de Presença e Transmissão”?

Vá além das alterações em tabelas com a Presença em Tempo Real do Supabase para acompanhar quem está online e use a Transmissão para enviar mensagens efêmeras entre clientes. Você pratica Supabase Backend as a Service com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Supabase Backend as a Service?

Nenhuma experiência prévia é necessária. Supabase Backend as a Service no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Canais de Presença e Transmissão”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Supabase Backend as a Service?

Sim. Cada aula de Supabase Backend as a Service inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Entendendo as assinaturas em tempo real
  2. Assinatura de alterações em tabelas
  3. Criação de um recurso de bate-papo ao vivo
  4. Canais de Presença e Transmissão
← Voltar para Supabase Backend as a Service