Skip to main content

Run Participants and Collaboration in Expo

Build participant controls and shared activities with mediasfu-reactnative-expo@2.5.0: waiting and requests, moderation, roles and permissions, messages, polls, breakouts, whiteboard, and recording.

Complete the Expo room lifecycle first. Keep account credentials and room authority on your backend. The current pre-join surface reads configured credentials before invoking custom callbacks, so do not add an account key to an Expo app as a workaround.

Start with the supplied mobile workspaces

ModernMediasfuGeneric includes participant, waiting, request, co-host, panelist, permission, message, poll, breakout, whiteboard, and recording workspaces. Start there so touch layout, safe areas, keyboard behavior, room roles, media, and socket state stay coordinated.

For a custom navigation shell, the package root exports the workspace launchers and actions:

import {
handleCreatePoll,
handleEndPoll,
handleVotePoll,
launchBreakoutRooms,
launchConfigureWhiteboard,
launchMessages,
launchParticipants,
launchPoll,
launchRecording,
launchRequests,
launchWaiting,
startRecording,
stopRecording,
updatePanelists,
updateParticipantPermission,
} from 'mediasfu-reactnative-expo';

Use the current room-owned options. Do not build a second participant, role, or poll store for a custom screen.

Participant authority

Use the supplied participant, waiting, request, co-host, panelist, and permission workspaces. Only show an authority action when the current room role permits it, and confirm success from current room state.

ActionObservable successRecovery
Admit or rejectThe waiting entry disappears and the person joins or receives rejection.Keep it pending until the room changes.
Approve or deny requestThe request closes and the participant receives the result.Restore the current request after authority or connection failure.
Mute, restrict, or removeThe affected participant and remaining clients receive the state.Never hide a card locally to simulate success.
Assign co-host or panelistThe target's role and controls change.Keep the previous role if no room update arrives.
Change permissionThe target control follows the new policy.Restore only the failed setting.

Disable controls while the app is backgrounded, reconnecting, or waiting for a previous action. Ask for confirmation before removal or a broad permission change.

Messages, polls, breakouts, and whiteboard

Use the supplied message workspace for room and direct messages. Keep the recipient visible, preserve unsent drafts according to your privacy policy, and show success only after current message state includes the message.

Use handleCreatePoll, handleVotePoll, and handleEndPoll for the complete poll lifecycle. Disable double taps and reload current poll state after a reconnect.

Use the breakout workspace to review assignments, handle unassigned people, start the session, confirm every destination, and stop it before clearing drafts. Use the whiteboard configuration workspace to start and stop a shared board; verify changes from a second participant.

Recording

Open the recording workspace, explain what will be captured, and collect the consent your product requires. Use startRecording and stopRecording with current room options. Show recording as active or stopped only after the room confirms it, then apply your backend's retention, access, and deletion policy.

Expo recovery and cleanup

Test background and foreground transitions, audio-route changes, rotation, keyboard display, permission changes, and network handoff. After reconnect, reload current participant and collaboration state; never replay an interrupted action automatically.

On leave, removal, or meeting end, close workspaces and clear app-owned selections, pending actions, drafts, timers, temporary exports, listeners, and room authority. Keep participant leave, removal, and host-ended meeting states distinct.

Release checklist

  • Test host, co-host or panelist, and participant devices separately.
  • Admit, reject, approve, deny, mute, remove, and reassign with two devices.
  • Send room and direct messages with keyboard and rotation changes.
  • Create, vote, and end a poll without accepting a double tap.
  • Start and stop breakouts and whiteboard across two devices.
  • Start and stop recording with consent and retention behavior visible.
  • Background and restore the app during pending operations.
  • Switch network and audio route without replaying an action.
  • Verify cleanup after leave, removal, and meeting end.

Build and test the Expo application, then run this checklist on physical Android and iOS devices before release.