PubNub es una red global de mensajería en tiempo real que proporciona infraestructura para publicar y suscribirse a mensajes a través de WebSocket con latencia mínima. Está orientada a aplicaciones que requieren entrega confiable de datos bajo alta carga y conexiones inestables. Según la documentación oficial de PubNub (2025), la plataforma procesa más de 1 billón de mensajes mensualmente para más de 70 000 aplicaciones en todo el mundo.
Puntos clave
PubNub es una red global de datos en tiempo real, fundada en 2010. Proporciona una API para publicar y suscribirse a mensajes, así como servicios adicionales: almacenamiento de historial, gestión de presencia, funciones sin servidor (PubNub Functions) y análisis de flujos de datos.
La arquitectura de PubNub se basa en una red distribuida de puntos de presencia (POP) ubicados en más de 15 regiones geográficas. Cada punto contiene brokers de almacenamiento en caché que enrutan mensajes entre editores y suscriptores con latencia mínima. PubNub no utiliza un único broker central — cada región opera de forma independiente y se sincroniza a través de la red global.
Según el sitio web oficial de PubNub (2025), la plataforma atiende a más de 70 000 aplicaciones en más de 200 países. Entre los clientes clave se incluyen Logitech (gestión de dispositivos IoT), GoPro (transmisión de video en tiempo real), eBay (sincronización de subastas) y Snapchat (chat y notificaciones).
PubNub se basa en tres principios: velocidad (latencia inferior a 10 ms en el percentil 95 dentro de una misma región), confiabilidad (garantía de entrega at-least-once con reintento automático) y escalabilidad (expansión horizontal sin límite en el número de canales). La plataforma no almacena mensajes en almacenamiento a largo plazo — el historial está disponible a través de un servicio Storage & Playback conectado por separado.
El modelo de operación de PubNub se basa en el patrón clásico de publicación-suscripción. El cliente editor envía un mensaje especificando el canal a través de la API REST de PubNub con una clave de publicación. PubNub entrega el mensaje a todos los suscriptores de ese canal a través de sus conexiones WebSocket activas. Los suscriptores reciben el mensaje a través de un manejador de devolución de llamada registrado en el SDK de PubNub.
La capa de transporte de PubNub utiliza WebSocket como protocolo principal, con una alternativa de HTTP long-polling para entornos con restricciones. El SDK gestiona automáticamente la conexión: establece, mantiene el heartbeat (cada 15–60 segundos según la red) y se reconecta en caso de interrupción.
Cada mensaje en PubNub contiene metadatos: UUID del remitente, marca de tiempo, número de secuencia (timetoken) y banderas (store, replicate, eatAfterRead). Timetoken es un identificador único de PubNub basado en el tiempo que garantiza el orden global de los mensajes dentro de un canal. Según la documentación de PubNub (2025), el timetoken tiene una resolución de 10 nanosegundos.
Cuando un cliente publica un mensaje, pasa a través del Stream Controller — el módulo de enrutamiento de PubNub. El Stream Controller verifica los derechos de acceso (PAM), aplica reglas de transformación (PubNub Functions), determina las regiones de destino y envía el mensaje a todos los suscriptores. Si un suscriptor está desconectado, el mensaje se almacena en búfer durante 30 segundos (por defecto) mientras espera la recuperación de la conexión.
El sistema de claves de PubNub separa los derechos de acceso en tres niveles: clave de publicación (solo publicación), clave de suscripción (solo suscripción) y clave secreta (administración). Cada aplicación recibe un conjunto de tres claves al registrarse, pero la clave secreta nunca se transmite al cliente — se usa solo en el lado del servidor.
La clave de publicación se utiliza para enviar mensajes a los canales. La clave de suscripción se utiliza para suscribirse a canales y recibir mensajes. La clave secreta se utiliza para la gestión de acceso a través de PubNub Access Manager (PAM), creación de tokens de audiencia temporales y gestión de claves. La clave secreta se mantiene segura en el servidor y nunca se revela a los clientes.
PubNub admite varios modos de autenticación: por dirección IP (para servidores), por clave secreta (para operaciones administrativas), por tokens temporales (para clientes). Los tokens temporales se emiten a través de PAM con restricciones de tiempo de validez, canales y permisos (read, write, manage).
Los canales de PubNub son rutas de mensajes con nombre. El nombre de un canal es una cadena de hasta 92 caracteres que admite letras latinas, dígitos, guiones y guiones bajos. Los canales se crean dinámicamente en la primera publicación o suscripción. PubNub admite patrones de canal mediante el carácter * en las solicitudes de suscripción — esto permite suscribirse a un grupo de canales (por ejemplo, user-*).
Channel Groups es un mecanismo de agrupación de canales para suscripción masiva. En lugar de suscribirse a 50 canales individuales, el cliente se suscribe a un grupo, y todos los mensajes de los canales que lo componen se entregan automáticamente al cliente. Channel Groups admite anidamiento, pero la profundidad no debe exceder los 3 niveles.
Según la documentación técnica de PubNub (2025), el número máximo de suscriptores por canal es de 50 000. Para cargas más altas, se recomienda usar canales con prefijos y fragmentar la audiencia (por ejemplo, chat-room-001, chat-room-002). Channel Groups también se puede organizar por principios geográficos o temáticos.
| Parámetro | Máximo | Nota |
|---|---|---|
| Longitud del nombre del canal | 92 caracteres | Letras latinas, dígitos, -, _ |
| Suscriptores por canal | 50 000 | Superior — fragmentar |
| Channel Groups | 2000 grupos / clave | Hasta 500 canales por grupo |
| Historial (almacenamiento) | Ilimitado | Pago por volumen de almacenamiento |
La integración de PubNub requiere registro, creación de una aplicación en el panel de administración y obtención de un conjunto de claves. Las bibliotecas de PubNub están disponibles para JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go y muchos otros lenguajes. Veamos un ejemplo en JavaScript para navegador y Node.js.
Según la documentación de PubNub (2025), la biblioteca pubnub-js admite importaciones tanto CommonJS como ES Module. Para el navegador, se recomienda usar la compilación npm seguida de empaquetado mediante webpack o 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('Nuevo mensaje:', event.message);
},
presence: (event) => {
console.log('Presencia:', 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('Error al obtener el historial', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions es una plataforma sin servidor para procesar mensajes del lado de PubNub. Las funciones se escriben en JavaScript y se ejecutan en un entorno aislado seguro (V8 isolate). Pueden transformar, filtrar, almacenar en búfer y redirigir mensajes antes de que se entreguen a los suscriptores.
Stream Controller es un mecanismo de enrutamiento integrado que gestiona el flujo de mensajes según reglas. Las reglas determinan qué mensajes se entregan, cuáles se descartan y cuáles se envían a PubNub Functions para su procesamiento. Stream Controller admite enrutamiento condicional por contenido del mensaje, tipo de canal o metadatos.
Según el blog de PubNub (2024), PubNub Functions reducen los costos de infraestructura del servidor para el procesamiento de mensajes en un 40–60% al ejecutar la lógica de filtrado y transformación en los nodos periféricos de PubNub, en lugar de hacerlo en su propio servidor. Las funciones tienen acceso a solicitudes HTTP, almacenamiento Key-Value y otras funciones dentro del mismo espacio.
El SDK de PubNub para plataformas móviles está disponible para iOS (Swift), Android (Kotlin/Java), Flutter (Dart) y React Native (JavaScript). Los SDK móviles admiten la gama completa de funciones: pub/sub, presencia, historial, PAM y PubNub Functions. Para notificaciones push, PubNub se integra con APNs y FCM a través de un mecanismo especial de puerta de enlace push móvil.
La optimización para dispositivos móviles incluye heartbeat adaptativo, procesamiento por lotes de mensajes y soporte para modos en segundo plano. El SDK de PubNub para iOS utiliza la API de Background Task para mantener la conexión cuando la aplicación está minimizada (hasta 30 segundos de tiempo de fondo estándar). Para un funcionamiento en segundo plano más prolongado, se requieren notificaciones push.
Mobile Push Gateway es un mecanismo de envío de notificaciones push a través de PubNub. Cuando se publica un mensaje en un canal, PubNub determina automáticamente qué suscriptores están desconectados y les envía una notificación push a través de APNs (iOS) o FCM (Android). La configuración se realiza una vez en el panel de administración — después de eso, todos los mensajes del canal se duplican automáticamente en el canal push. Según la documentación de PubNub (2025), la puerta de enlace procesa hasta 10 000 notificaciones push por segundo.
Preguntas frecuentes
PubNub ofrece más SDK (más de 75 plataformas), funciones sin servidor integradas y Stream Controller para procesamiento de mensajes. Pusher es más fácil de configurar, pero PubNub brinda más control sobre el enrutamiento y la transformación de datos.
PubNub utiliza un mecanismo at-least-once con reintento automático en caso de fallo. Cada mensaje tiene un timetoken único para la deduplicación. Los mensajes se almacenan en búfer durante 30 segundos para suscriptores desconectados.
El plan gratuito incluye 100 conexiones simultáneas y 1 millón de mensajes por mes. Los planes de pago comienzan desde $49/mes por 1000 conexiones simultáneas con mensajes ilimitados.
Sí, PubNub admite TLS 1.3 para todas las conexiones y cifrado opcional de extremo a extremo en el cliente (AES-256) con gestión de claves a través de PAM. El modo Cipher Key está disponible para clientes empresariales.
PubNub proporciona SDK para más de 75 plataformas, incluyendo JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust y Objective-C. Este es el ecosistema más grande entre los servicios en tiempo real.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también