Sofya Developers

Quickstart — guest

Quickstart — guest

Pergunta: "eu sou o guest, como escaneio e entro?"

Pré-requisito no topo, em destaque: sessão autenticada. Não existe entrada sem login — não há auto-autenticação por QR. joinRoom exige credential, exatamente como createHost exige do lado do host. Nenhum snippet desta página aparece sem credential preenchida — copiar um trecho sem isso é copiar um caminho que não existe.

Passo a passo

import { joinRoom, parseJoinTarget } from '@sofya-sdk/event-room';

// O alvo vem do QR escaneado (uma URL completa) ou de um código digitado à mão.

// Variante 1 — QR escaneado: a URL inteira já carrega o alvo.
const scannedUrl = 'https://guest.example.com/join?v=1&roomId=abc123&accessMode=approval_and_code&joinCode=XYZ9';
const targetFromQr = parseJoinTarget(scannedUrl);

// Variante 2 — código digitado: monte o mesmo formato à mão.
const targetFromTypedCode = {
  roomId: 'abc123',
  accessMode: 'approval_and_code' as const,
  joinCode: 'XYZ9',
};

const guest = await joinRoom({
  url: 'ws://localhost:8080/ws',
  credential: 'dev-guest-credential', // sessão autenticada do guest — nunca vazio
  target: targetFromQr, // ou targetFromTypedCode
  displayName: 'Guest do celular', // obrigatório quando accessMode exige aprovação
  role: 'mic',
});

guest.sendEvent('ping', { at: Date.now() }); // exemplo — troque por um evento do seu contrato (ver eventos.md)

guest.getStatus(); // RoomSessionStatus — ver maquina-de-estados.md

// Ao sair:
guest.close();

Próximo passo

receita-microfone.md — o fluxo completo, incluindo o passo de login antes de escanear.

Last updated on

On this page