Bird
Raised Fist0
Supabasecloud~20 mins

Broadcast for custom events in Supabase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Supabase Broadcast Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
How does Supabase broadcast custom events to clients?

Supabase allows broadcasting custom events to clients subscribed to a channel. What happens when you broadcast a custom event on a channel?

AAll clients subscribed to that channel receive the event with the specified payload.
BOnly the client that sent the event receives the broadcasted message.
CClients subscribed to other channels receive the event regardless of their subscription.
DThe event is stored in the database but not sent to any client.
Attempts:
2 left
💡 Hint

Think about how broadcasting works in a chat room: everyone in the room hears the message.

❓ Configuration
intermediate
2:00remaining
Which code snippet correctly broadcasts a custom event named 'update' with payload {count: 5} on a Supabase channel?

Choose the correct JavaScript code to broadcast a custom event 'update' with payload {count: 5} on a Supabase channel named 'my-channel'.

Achannel.broadcast('update', {count: 5});
Bchannel.send('update', {count: 5});
Cchannel.emit('update', {count: 5});
Dchannel.push('update', {count: 5});
Attempts:
2 left
💡 Hint

Look for the method that explicitly means sending to all subscribers.

❓ Architecture
advanced
2:30remaining
What is the best architecture to ensure reliable delivery of custom broadcast events in Supabase?

In a system using Supabase real-time channels, which architecture pattern best ensures that custom broadcast events are reliably delivered to all clients even if some disconnect temporarily?

ASend events via HTTP requests instead of channels to guarantee delivery.
BBroadcast events only once without any retry or logging, relying on clients to be always connected.
CUse Supabase channels with client reconnection logic and server-side event logging for replay on reconnect.
DUse multiple channels per client to increase chances of event delivery.
Attempts:
2 left
💡 Hint

Think about how to handle clients that disconnect and reconnect.

❓ security
advanced
2:30remaining
Which security risk is most relevant when broadcasting custom events in Supabase channels?

When broadcasting custom events on Supabase channels, what is the main security risk to consider?

AClients receiving duplicate events due to reconnection.
BClients sending malformed events causing server crashes.
CBroadcast events being delayed due to network latency.
DUnauthorized clients subscribing to channels and receiving sensitive event data.
Attempts:
2 left
💡 Hint

Consider who can listen to the events and what data they get.

✅ Best Practice
expert
3:00remaining
What is the recommended best practice for naming custom events broadcasted in Supabase channels?

To maintain clarity and avoid conflicts, what is the best practice for naming custom events broadcasted on Supabase channels?

AUse generic names like 'event1', 'event2' to keep it short.
BUse descriptive, lowercase event names with words separated by underscores, e.g., 'user_update'.
CUse uppercase event names with spaces, e.g., 'USER UPDATE'.
DUse random strings as event names to avoid collisions.
Attempts:
2 left
💡 Hint

Think about readability and consistency in naming conventions.

Practice

(1/5)
1. What is the main purpose of using broadcast in Supabase custom events?
easy
A. To let different parts of your app communicate instantly
B. To store data permanently in the database
C. To create user authentication tokens
D. To schedule background jobs automatically

Solution

  1. Step 1: Understand the role of broadcast

    Broadcast is used to send messages instantly between parts of an app without delay.
  2. Step 2: Compare with other options

    Storing data, authentication, and scheduling jobs are unrelated to broadcast messaging.
  3. Final Answer:

    To let different parts of your app communicate instantly -> Option A
  4. Quick Check:

    Broadcast = instant app communication [OK]
Hint: Broadcast means instant messaging inside your app [OK]
Common Mistakes:
  • Confusing broadcast with database storage
  • Thinking broadcast handles authentication
  • Assuming broadcast schedules tasks
2. Which of the following is the correct way to listen for a broadcast event on a Supabase channel?
easy
A. channel.subscribe('broadcast', callbackFunction)
B. channel.listen('broadcast', callbackFunction)
C. channel.on('broadcast', callbackFunction)
D. channel.receive('broadcast', callbackFunction)

Solution

  1. Step 1: Recall Supabase broadcast listening syntax

    The correct method to listen for broadcast events is on('broadcast', callback).
  2. Step 2: Check other options

    Methods like listen, receive, and subscribe are not valid for broadcast events in Supabase.
  3. Final Answer:

    channel.on('broadcast', callbackFunction) -> Option C
  4. Quick Check:

    Listen with on('broadcast') = channel.on('broadcast', callbackFunction) [OK]
Hint: Use on('broadcast') to listen for events [OK]
Common Mistakes:
  • Using listen() instead of on()
  • Confusing subscribe() with on()
  • Trying receive() which is invalid
3. Given the following code snippet, what will be logged when the broadcast event is sent?
const channel = supabase.channel('chat');
channel.on('broadcast', (payload) => {
  console.log('Received:', payload.message);
});
channel.send({ type: 'broadcast', message: 'Hello!' });
medium
A. Received: Hello!
B. Received: undefined
C. Error: send method not found
D. No output

Solution

  1. Step 1: Understand the broadcast sending and listening

    The channel sends a broadcast with message 'Hello!'. The listener logs payload.message.
  2. Step 2: Trace the output

    The listener receives the payload and logs 'Received: Hello!'.
  3. Final Answer:

    Received: Hello! -> Option A
  4. Quick Check:

    Broadcast send triggers on() callback with message [OK]
Hint: send() triggers on('broadcast') with payload [OK]
Common Mistakes:
  • Expecting no output because of missing subscription
  • Confusing payload structure causing undefined
  • Assuming send() method does not exist
4. Identify the error in this Supabase broadcast code snippet:
const channel = supabase.channel('updates');
channel.send({ type: 'broadcast', message: 'Update!' });
channel.on('broadcast', (payload) => {
  console.log(payload.message);
});
medium
A. The send method requires a callback function
B. The payload object must include a 'channel' property
C. The channel name must be 'broadcast' to send broadcast events
D. The listener is set after sending the broadcast, so it misses the message

Solution

  1. Step 1: Check the order of send and listen

    The code sends the broadcast before setting the listener, so the listener misses the event.
  2. Step 2: Validate other options

    Send does not require a callback; channel name can be any string; payload does not need a 'channel' property.
  3. Final Answer:

    The listener is set after sending the broadcast, so it misses the message -> Option D
  4. Quick Check:

    Listener must be set before send to catch events [OK]
Hint: Set listener before sending broadcast [OK]
Common Mistakes:
  • Sending before listening causes missed events
  • Thinking send needs a callback
  • Assuming channel name must be 'broadcast'
5. You want to broadcast a custom event to multiple parts of your app grouped under a channel named 'notifications'. Which steps correctly implement this using Supabase's broadcast feature?
hard
A. Use subscribe('notifications') to listen and emit('broadcast') to send events
B. Create a channel 'notifications', set listeners with on('broadcast'), then send events with send({ type: 'broadcast', ... })
C. Create multiple channels for each listener, then send events individually to each channel
D. Broadcast events without creating a channel; listeners listen globally by default

Solution

  1. Step 1: Group listeners and senders with a channel

    Create a channel named 'notifications' to group app parts.
  2. Step 2: Use on('broadcast') to listen and send() to broadcast

    Listeners use on('broadcast') and senders use send({ type: 'broadcast', ... }) to communicate.
  3. Final Answer:

    Create a channel 'notifications', set listeners with on('broadcast'), then send events with send({ type: 'broadcast', ... }) -> Option B
  4. Quick Check:

    Channel + on('broadcast') + send() = correct broadcast setup [OK]
Hint: Use one channel with on('broadcast') and send() for group messaging [OK]
Common Mistakes:
  • Creating multiple channels unnecessarily
  • Using subscribe() or emit() which are invalid
  • Assuming broadcast works without channels
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard