Realtime
Com o Realtime, o app recebe os eventos do projeto assim que acontecem, sem ficar consultando a API. O @owbase/web abre uma conexão (websocket) com wss://cloud.owbase.dev/v1/realtime e entrega cada evento ao callback.
import { Channel, Realtime } from '@owbase/web';import { client } from './client';
const realtime = new Realtime(client);
// Qualquer linha criada, alterada ou apagada na tabela pedidos (que o usuário possa ler).const pedidos = await realtime.subscribe(Channel.tablesdb('loja').table('pedidos').row(), (evento) => { console.log(evento.events[0], evento.payload);});
// A conta do usuário logado (perfil, sessões, preferências).const conta = await realtime.subscribe(Channel.account(), (evento) => console.log('conta:', evento.events[0]));
// Ao sair da tela:await pedidos.unsubscribe();await conta.unsubscribe();Monte o canal com a classe Channel (o SDK confere a forma) ou escreva o nome:
| Canal | Recebe |
|---|---|
Channel.account() |
mudanças na conta do usuário logado |
Channel.tablesdb('loja').table('pedidos').row() |
linhas da tabela pedidos |
Channel.tablesdb('loja').table('pedidos').row('p1') |
só a linha p1 |
Channel.bucket('fotos').file() |
arquivos do bucket fotos |
Channel.function('f1') |
execuções da function f1 |
Channel.team('t1'), Channel.membership('m1') |
um time, uma participação |
Channel.rows(), Channel.files(), Channel.executions() |
tudo daquele tipo no projeto |
Acrescente .create(), .update() ou .delete() a um canal de linha ou arquivo para receber só aquela ação.
O evento
Seção intitulada “O evento”Cada evento traz events (os nomes do evento, do mais específico ao mais geral, como databases.loja.tables.pedidos.rows.p1.update), channels, timestamp e payload (o recurso já alterado).
Permissões
Seção intitulada “Permissões”O usuário só recebe eventos dos recursos que pode ler. Sem sessão, recebe só os de recursos públicos (Role.any()) ou abertos a visitantes (Role.guests()).
Encerrar
Seção intitulada “Encerrar”unsubscribe() cancela uma assinatura; realtime.disconnect() fecha a conexão inteira (ao sair do app ou trocar de usuário).