PubNub é uma rede global de mensagens em tempo real que fornece infraestrutura para publicar e subscrever mensagens via WebSocket com latência mínima. É voltada para aplicações que exigem entrega confiável de dados sob alta carga e conexões instáveis. De acordo com a documentação oficial da PubNub (2025), a plataforma processa mais de 1 trilhão de mensagens mensalmente para mais de 70.000 aplicações em todo o mundo.
Pontos principais
PubNub é uma rede global de dados em tempo real, fundada em 2010. Fornece uma API para publicar e subscrever mensagens, bem como serviços adicionais: armazenamento de histórico, gestão de presença, funções sem servidor (PubNub Functions) e análise de fluxos de dados.
A arquitetura do PubNub baseia-se numa rede distribuída de pontos de presença (POP) localizados em mais de 15 regiões geográficas. Cada ponto contém brokers de cache que encaminham mensagens entre editores e subscritores com latência mínima. O PubNub não utiliza um único broker central — cada região opera de forma independente e sincroniza através da rede global.
De acordo com o site oficial da PubNub (2025), a plataforma atende mais de 70.000 aplicações em mais de 200 países. Entre os clientes principais estão Logitech (gestão de dispositivos IoT), GoPro (transmissão de vídeo em tempo real), eBay (sincronização de leilões) e Snapchat (chat e notificações).
O PubNub é construído sobre três princípios: velocidade (latência inferior a 10 ms no percentil 95 dentro de uma única região), fiabilidade (garantia de entrega at-least-once com repetição automática) e escalabilidade (expansão horizontal sem limite no número de canais). A plataforma não armazena mensagens em armazenamento de longo prazo — o histórico está disponível através de um serviço Storage & Playback conectado separadamente.
O modelo de operação do PubNub baseia-se no padrão clássico de publicação-subscrição. O cliente editor envia uma mensagem especificando o canal através da API REST do PubNub com uma chave de publicação. O PubNub entrega a mensagem a todos os subscritores desse canal através das suas conexões WebSocket ativas. Os subscritores recebem a mensagem através de um manipulador de retorno de chamada registado no SDK do PubNub.
A camada de transporte do PubNub utiliza WebSocket como protocolo principal, com fallback para HTTP long-polling em ambientes com restrições. O SDK gere automaticamente a conexão: estabelece, mantém o heartbeat (a cada 15–60 segundos dependendo da rede) e reconecta em caso de interrupção.
Cada mensagem no PubNub contém metadados: UUID do remetente, carimbo de data/hora, número de sequência (timetoken) e flags (store, replicate, eatAfterRead). Timetoken é um identificador único do PubNub baseado no tempo que garante a ordem global das mensagens dentro de um canal. De acordo com a documentação do PubNub (2025), o timetoken tem uma resolução de 10 nanossegundos.
Quando um cliente publica uma mensagem, esta passa através do Stream Controller — o módulo de encaminhamento do PubNub. O Stream Controller verifica os direitos de acesso (PAM), aplica regras de transformação (PubNub Functions), determina as regiões de destino e envia a mensagem a todos os subscritores. Se um subscritor estiver offline, a mensagem é armazenada em buffer durante 30 segundos (por padrão) enquanto aguarda a recuperação da conexão.
O sistema de chaves do PubNub separa os direitos de acesso em três níveis: chave de publicação (apenas publicação), chave de subscrição (apenas subscrição) e chave secreta (administração). Cada aplicação recebe um conjunto de três chaves ao registar-se, mas a chave secreta nunca é transmitida ao cliente — é utilizada apenas no lado do servidor.
A chave de publicação é utilizada para enviar mensagens para os canais. A chave de subscrição é utilizada para subscrever canais e receber mensagens. A chave secreta é utilizada para gestão de acesso através do PubNub Access Manager (PAM), criação de tokens de audiência temporários e gestão de chaves. A chave secreta é mantida em segurança no servidor e nunca é revelada aos clientes.
O PubNub suporta vários modos de autenticação: por endereço IP (para servidores), por chave secreta (para operações administrativas), por tokens temporários (para clientes). Os tokens temporários são emitidos através do PAM com restrições de tempo de validade, canais e permissões (read, write, manage).
Os canais do PubNub são rotas de mensagens nomeadas. O nome de um canal é uma string de até 92 caracteres, suportando letras latinas, dígitos, hífens e underscores. Os canais são criados dinamicamente na primeira publicação ou subscrição. O PubNub suporta padrões de canal através do caractere * em pedidos de subscrição — isto permite subscrever um grupo de canais (por exemplo, user-*).
Channel Groups é um mecanismo de agrupamento de canais para subscrição em massa. Em vez de subscrever 50 canais individuais, o cliente subscreve um grupo, e todas as mensagens dos canais que o compõem são automaticamente entregues ao cliente. Channel Groups suporta aninhamento, mas a profundidade não deve exceder 3 níveis.
De acordo com a documentação técnica do PubNub (2025), o número máximo de subscritores por canal é de 50.000. Para cargas mais elevadas, recomenda-se usar canais com prefixos e fragmentar a audiência (por exemplo, chat-room-001, chat-room-002). Channel Groups também podem ser organizados por princípios geográficos ou temáticos.
| Parâmetro | Máximo | Nota |
|---|---|---|
| Comprimento do nome do canal | 92 caracteres | Letras latinas, dígitos, -, _ |
| Subscritores por canal | 50.000 | Superior — fragmentar |
| Channel Groups | 2000 grupos / chave | Até 500 canais por grupo |
| Histórico (armazenamento) | Ilimitado | Pagamento por volume de armazenamento |
A integração do PubNub requer registo, criação de uma aplicação no painel de administração e obtenção de um conjunto de chaves. As bibliotecas do PubNub estão disponíveis para JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go e muitas outras linguagens. Vejamos um exemplo em JavaScript para navegador e Node.js.
De acordo com a documentação do PubNub (2025), a biblioteca pubnub-js suporta importações CommonJS e ES Module. Para o navegador, recomenda-se usar a compilação npm seguida de empacotamento via webpack ou Vite.
import PubNub from 'pubnub';
const pubnub = new PubNub({
publishKey: 'PUBLISH_KEY',
subscribeKey: 'SUBSCRIBE_KEY',
userId: 'user-100'
});
pubnub.subscribe({
channels: ['chat-general']
});
pubnub.addListener({
message: (event) => {
console.log('Nova mensagem:', event.message);
},
presence: (event) => {
console.log('Presença:', event.uuid, event.action);
}
});
pubnub.publish({
channel: 'chat-general',
message: { text: 'Hello everyone!', sender: 'user-100' }
});
pubnub.fetchMessages(
{ channels: ['chat-general'], count: 50 },
(status, response) => {
if (status.error) {
console.error('Erro ao obter histórico', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions é uma plataforma sem servidor para processar mensagens do lado do PubNub. As funções são escritas em JavaScript e executadas num ambiente isolado seguro (V8 isolate). Podem transformar, filtrar, armazenar em buffer e redirecionar mensagens antes de serem entregues aos subscritores.
Stream Controller é um mecanismo de encaminhamento integrado que gere o fluxo de mensagens com base em regras. As regras determinam quais mensagens são entregues, quais são descartadas e quais são enviadas para PubNub Functions para processamento. O Stream Controller suporta encaminhamento condicional por conteúdo da mensagem, tipo de canal ou metadados.
De acordo com o blog do PubNub (2024), o PubNub Functions reduz os custos de infraestrutura do servidor para processamento de mensagens em 40–60% ao executar a lógica de filtragem e transformação nos nós de borda do PubNub, em vez de no seu próprio servidor. As funções têm acesso a pedidos HTTP, armazenamento Key-Value e outras funções no mesmo espaço.
O SDK do PubNub para plataformas móveis está disponível para iOS (Swift), Android (Kotlin/Java), Flutter (Dart) e React Native (JavaScript). Os SDKs móveis suportam a gama completa de funcionalidades: pub/sub, presença, histórico, PAM e PubNub Functions. Para notificações push, o PubNub integra-se com APNs e FCM através de um mecanismo especial de gateway push móvel.
A otimização para dispositivos móveis inclui heartbeat adaptativo, processamento em lote de mensagens e suporte para modos de fundo. O SDK do PubNub para iOS utiliza a Background Task API para manter a conexão quando a aplicação está minimizada (até 30 segundos de tempo de fundo padrão). Para um funcionamento em fundo mais prolongado, são necessárias notificações push.
Mobile Push Gateway é um mecanismo de envio de notificações push através do PubNub. Quando uma mensagem é publicada num canal, o PubNub determina automaticamente quais subscritores estão offline e envia-lhes uma notificação push através de APNs (iOS) ou FCM (Android). A configuração é feita uma vez no painel de administração — depois disso, todas as mensagens do canal são automaticamente duplicadas no canal push. De acordo com a documentação do PubNub (2025), o gateway processa até 10.000 notificações push por segundo.
Perguntas frequentes
PubNub oferece mais SDKs (mais de 75 plataformas), funções sem servidor integradas e Stream Controller para processamento de mensagens. Pusher é mais fácil de configurar, mas o PubNub dá mais controlo sobre o encaminhamento e a transformação de dados.
O PubNub utiliza um mecanismo at-least-once com repetição automática em caso de falha. Cada mensagem tem um timetoken único para desduplicação. As mensagens são armazenadas em buffer durante 30 segundos para subscritores offline.
O plano gratuito inclui 100 conexões simultâneas e 1 milhão de mensagens por mês. Os planos pagos começam em $49/mês por 1000 conexões simultâneas com mensagens ilimitadas.
Sim, o PubNub suporta TLS 1.3 para todas as conexões e encriptação opcional de ponta a ponta no cliente (AES-256) com gestão de chaves através do PAM. O modo Cipher Key está disponível para clientes empresariais.
O PubNub fornece SDKs para mais de 75 plataformas, incluindo JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust e Objective-C. Este é o maior ecossistema entre os serviços em tempo real.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também