Tempo real (Centrifugo)
Mensagens WebSocket em tempo real com canais, presença e pub/sub.
Criar um servidor em tempo real
Para criar uma instância em tempo real:
- Acesse Servidores em tempo real no painel do sh0.
- Clique em Criar servidor em tempo real.
- Digite um nome (por exemplo, "my-app-realtime").
- Clique em Criar. O sh0 faz o deploy de uma instância do Centrifugo com SSL automático.
Seu servidor em tempo real fica acessível imediatamente em wss://<name>.sh0.app/connection/websocket.
Canais
Os canais são a abstração principal do Centrifugo. Os clientes se inscrevem em canais e recebem as mensagens publicadas neles. Os nomes de canal são strings — você define a convenção de nomenclatura.
Namespaces
Use namespaces de canais para agrupar canais com configuração compartilhada. Por exemplo, os canais chamados chat:room-1 e chat:room-2 pertencem ao namespace chat (usando : como separador).
Configure, no nível do namespace, a retenção de histórico, o rastreamento de presença e as permissões na configuração do Centrifugo.
Presença
Ative a presença em um canal para acompanhar quais usuários estão inscritos no momento. As informações de presença incluem o ID do cliente e o ID do usuário. Útil para:
- Mostrar quem está online em uma sala de chat.
- Exibir os colaboradores ativos em um documento.
- Acompanhar o número de espectadores de uma transmissão ao vivo.
API de publicação
Publique mensagens do seu backend em qualquer canal pela API HTTP:
A chave de API é gerada quando você cria o servidor em tempo real e fica visível no painel.
Cliente JavaScript
Instale o cliente JavaScript do Centrifugo:
npm install centrifuge
Conecte-se e inscreva-se:
Autenticação
O Centrifugo oferece suporte a autenticação baseada em JWT. Ao criar a conexão do cliente, passe um token:
O token deve conter a claim sub (subject) do usuário. Se você usa o serviço de autenticação do sh0 (Logto), o token de acesso funciona diretamente.
Painel de administração
O Centrifugo inclui um painel de administração integrado para monitorar seu servidor em tempo real. Acesse-o pelo domínio do seu servidor em tempo real. O painel mostra:
- O número de conexões ativas.
- A taxa de mensagens por segundo.
- Os canais ativos e seu número de inscritos.
- As informações dos nós do servidor e seu status de saúde.