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