WebSockets como Serviço
A plataforma gerenciada em tempo real por trás do chat e dos dados ao vivo da foony.com, aberta a todo desenvolvedor em foony.io.
Um serviço de WebSocket mantém uma conexão persistente aberta entre seus servidores e cada cliente conectado, então as atualizações chegam no momento em que acontecem, em vez de só no próximo refresh da página. O Foony Realtime cuida das partes chatas por você: conexões, reconexões, distribuição, presença e histórico de mensagens, tudo por trás de um pequeno SDK.
Teste ao vivo
Tudo aqui embaixo está rodando contra o serviço de produção em realtime.foony.io agora mesmo. Abra esta página em uma segunda aba e veja as duas espelhando uma à outra.
Presença e cursores ao vivo
Todo mundo que está lendo esta página aparece aqui, direto da presença do canal. As posições dos cursores viajam como mensagens efêmeras, o nível de baixa latência que pula o armazenamento por completo.
Chat ao vivo
Este é o chat de verdade desta página, a mesma sala @foony/chat que roda em toda página e sala de jogo da Foony. As mensagens chegam por um canal com histórico, e os envios passam pelo servidor da Foony, então toda mensagem é moderada.
Ninguém disse nada recentemente. Seja o quebra-gelo.
Sincronização de Banco de Dados
Este é o pipeline de produção do foony.com: digite qualquer nome de usuário da Foony e a linha pública dele no Postgres chega via WebSocket do site, e continua atualizando ao vivo enquanto ele joga. Sem polling, sem endpoint de API.
Buscando…
Por que as equipes compram WebSockets em vez de construí-los
- Reconexões que não perdem mensagens. Os navegadores derrubam conexões o tempo todo. Os clientes retomam de onde pararam com replay do histórico, então uma conexão instável não significa mensagens perdidas.
- Fan-out em escala. Entregar uma mensagem a cem mil assinantes em menos de um segundo é um problema difícil de sistemas distribuídos. Aqui, é o trabalho inteiro.
- Presença sem burocracia. Veja quem está online agora e reaja a eventos de entrada, atualização e saída, sem escrever sua própria lógica de heartbeat e timeout.
- Sem planejamento de capacidade. Servidores WebSocket mantêm estado, então escalá-los por conta própria significa drenagem, sharding e roteamento sticky. Um serviço gerenciado deixa isso na mão de outra pessoa.
O que você ganha com o Foony Realtime
Canais e pub/sub
Distribua eventos nomeados via WebSocket ou REST para canais com escopo de app (por exemplo, chat:lobby) com semântica de entrega previsível.
Presença
Acompanhe quem está online, atualize a participação automaticamente e reaja a eventos de entrada, atualização e saída.
Histórico de mensagens
Refaça o replay de mensagens recentes a partir de armazenamento durável para que os clientes se recuperem tranquilamente após reconexões.
Autenticação por token
Gere tokens de cliente de curta duração a partir do seu backend com permissões de publicação, assinatura, presença e histórico no nível do canal.
Compatível com Pusher
Fala o protocolo Pusher, então apps com pusher-js e Laravel Echo conectam com uma mudança de configuração em vez de uma reescrita.
Sincronização de Banco de Dados
Transmita mudanças do Postgres direto para clientes inscritos como consultas ao vivo, sem polling e sem código de cola.
A integração inteira é só algumas linhas:
const realtime = new Realtime({ authCallback });
const channel = realtime.channels.get('chat:lobby');
channel.on((message) => {
showMessage(message.data);
});
await channel.publish('message', { text: 'hello' });
await channel.presence.enter({ name: 'Acorn' });Testado em batalha com jogos reais
A Foony usa muito o Foony Realtime para nosso chat e para as atualizações do banco de dados em tempo real. Cerca de 1,5 milhão de jogadores por mês contam com o foony.io para aproximadamente 500 milhões de mensagens, e um jogo multiplayer só fica bom quando essas mensagens chegam rápido, em ordem e exatamente uma vez. A Foony não seria possível sem a confiabilidade e o bom custo-benefício do foony.io.
Veja isso em ação em qualquer um dos nossos jogos, e então tenha a mesma infraestrutura com um painel e um SDK no foony.io.

Teste com o seu próprio tráfego
O plano gratuito inclui 9 milhões de mensagens por mês. Não precisa de cartão de crédito.
Perguntas frequentes
O que é WebSockets como serviço?
Uma plataforma gerenciada que cuida das conexões persistentes entre seu app e seus usuários. Em vez de rodar seus próprios servidores WebSocket, seus clientes se conectam ao serviço, seu backend publica mensagens em canais por meio de um SDK ou REST, e o serviço cuida da entrega, das reconexões, da presença e do histórico.
Como o Foony Realtime é diferente do Pusher ou do Ably?
Ele cobre a mesma base essencial de canais, presença, histórico e autenticação por token, e fala o protocolo do Pusher, então funciona como uma alternativa drop-in ao Pusher. A diferença está na origem e no preço. Ele foi construído para o foony.com, nosso próprio site de jogos multiplayer, e o plano gratuito inclui 9 milhões de mensagens por mês.
Preciso reescrever meu app para trocar?
Geralmente não. Apps com pusher-js e Laravel Echo podem apontar para o Foony Realtime com uma mudança de configuração. Projetos novos usam o SDK @foony/realtime para JavaScript e TypeScript, o SDK Go, ou a API REST a partir de qualquer linguagem.
Quanto custa?
O plano gratuito inclui 9 milhões de mensagens por mês. Os planos pagos adicionam capacidade mensal, e o uso acima do seu plano é cobrado por milhão de mensagens. Os números atuais estão em foony.io/pricing.