PubNub est un réseau mondial de messagerie en temps réel qui fournit une infrastructure pour publier et s'abonner à des messages via WebSocket avec une latence minimale. Il est conçu pour les applications nécessitant une livraison fiable des données sous forte charge et des connexions instables. Selon la documentation officielle de PubNub (2025), la plateforme traite plus de 1 billion de messages par mois pour plus de 70 000 applications dans le monde.
Points clés
PubNub est un réseau mondial de données en temps réel, fondé en 2010. Il fournit une API pour publier et s'abonner à des messages, ainsi que des services supplémentaires : stockage d'historique, gestion de présence, fonctions sans serveur (PubNub Functions) et analyse de flux de données.
L'architecture de PubNub repose sur un réseau distribué de points de présence (POP) situés dans plus de 15 régions géographiques. Chaque point contient des courtiers de mise en cache qui acheminent les messages entre les éditeurs et les abonnés avec une latence minimale. PubNub n'utilise pas de courtier central unique — chaque région fonctionne indépendamment et se synchronise via le réseau mondial.
Selon le site officiel de PubNub (2025), la plateforme dessert plus de 70 000 applications dans plus de 200 pays. Parmi les clients clés figurent Logitech (gestion des appareils IoT), GoPro (diffusion vidéo en temps réel), eBay (synchronisation des enchères) et Snapchat (chat et notifications).
PubNub est construit sur trois principes : la vitesse (latence inférieure à 10 ms au 95e percentile dans une même région), la fiabilité (garantie de livraison at-least-once avec nouvelle tentative automatique) et l'évolutivité (expansion horizontale sans limite du nombre de canaux). La plateforme ne stocke pas les messages dans un stockage à long terme — l'historique est disponible via un service Storage & Playback connecté séparément.
Le modèle de fonctionnement de PubNub est basé sur le modèle classique de publication-abonnement. Le client éditeur envoie un message en spécifiant le canal via l'API REST de PubNub avec une clé de publication. PubNub délivre le message à tous les abonnés de ce canal via leurs connexions WebSocket actives. Les abonnés reçoivent le message via un gestionnaire de rappel enregistré dans le SDK PubNub.
La couche de transport de PubNub utilise WebSocket comme protocole principal, avec un repli sur HTTP long-polling pour les environnements avec contraintes. Le SDK gère automatiquement la connexion : établit, maintient le heartbeat (toutes les 15 à 60 secondes selon le réseau) et se reconnecte en cas d'interruption.
Chaque message dans PubNub contient des métadonnées : UUID de l'expéditeur, horodatage, numéro de séquence (timetoken) et drapeaux (store, replicate, eatAfterRead). Timetoken est un identifiant unique de PubNub basé sur le temps qui garantit l'ordre global des messages dans un canal. Selon la documentation PubNub (2025), la résolution de timetoken est de 10 nanosecondes.
Lorsqu'un client publie un message, il passe par le Stream Controller — le module de routage de PubNub. Le Stream Controller vérifie les droits d'accès (PAM), applique les règles de transformation (PubNub Functions), détermine les régions cibles et envoie le message à tous les abonnés. Si un abonné est déconnecté, le message est mis en mémoire tampon pendant 30 secondes (par défaut) en attendant la récupération de la connexion.
Le système de clés de PubNub sépare les droits d'accès en trois niveaux : clé de publication (publication uniquement), clé d'abonnement (abonnement uniquement) et clé secrète (administration). Chaque application reçoit un ensemble de trois clés lors de l'inscription, mais la clé secrète n'est jamais transmise au client — elle est utilisée uniquement côté serveur.
La clé de publication est utilisée pour envoyer des messages aux canaux. La clé d'abonnement est utilisée pour s'abonner aux canaux et recevoir des messages. La clé secrète est utilisée pour la gestion d'accès via PubNub Access Manager (PAM), la création de jetons d'audience temporaires et la gestion des clés. La clé secrète est conservée en sécurité sur le serveur et n'est jamais divulguée aux clients.
PubNub prend en charge plusieurs modes d'authentification : par adresse IP (pour les serveurs), par clé secrète (pour les opérations administratives), par jetons temporaires (pour les clients). Les jetons temporaires sont émis via PAM avec des restrictions de durée de validité, de canaux et de permissions (read, write, manage).
Les canaux PubNub sont des routes de messages nommées. Le nom d'un canal est une chaîne de jusqu'à 92 caractères, prenant en charge les lettres latines, les chiffres, les tirets et les underscores. Les canaux sont créés dynamiquement lors de la première publication ou du premier abonnement. PubNub prend en charge les modèles de canal via le caractère * dans les requêtes d'abonnement — cela permet de s'abonner à un groupe de canaux (par exemple, user-*).
Channel Groups est un mécanisme de regroupement de canaux pour l'abonnement en masse. Au lieu de s'abonner à 50 canaux individuels, le client s'abonne à un groupe, et tous les messages des canaux qui le composent sont automatiquement livrés au client. Channel Groups prend en charge l'imbrication, mais la profondeur ne doit pas dépasser 3 niveaux.
Selon la documentation technique de PubNub (2025), le nombre maximum d'abonnés par canal est de 50 000. Pour des charges plus élevées, il est recommandé d'utiliser des canaux avec des préfixes et de fragmenter l'audience (par exemple, chat-room-001, chat-room-002). Channel Groups peut également être organisé par principes géographiques ou thématiques.
| Paramètre | Maximum | Note |
|---|---|---|
| Longueur du nom du canal | 92 caractères | Lettres latines, chiffres, -, _ |
| Abonnés par canal | 50 000 | Supérieur — fragmenter |
| Channel Groups | 2000 groupes / clé | Jusqu'à 500 canaux par groupe |
| Historique (stockage) | Illimité | Paiement par volume de stockage |
L'intégration de PubNub nécessite une inscription, la création d'une application dans le panneau d'administration et l'obtention d'un ensemble de clés. Les bibliothèques PubNub sont disponibles pour JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go et de nombreux autres langages. Regardons un exemple en JavaScript pour navigateur et Node.js.
Selon la documentation PubNub (2025), la bibliothèque pubnub-js prend en charge les importations CommonJS et ES Module. Pour le navigateur, il est recommandé d'utiliser la construction npm suivie d'un regroupement 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('Nouveau message :', event.message);
},
presence: (event) => {
console.log('Présence :', 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('Erreur lors de la récupération de l'historique', status);
return;
}
const messages = response.channels['chat-general'];
messages.forEach((msg) => {
console.log(msg.message, msg.timetoken);
});
}
);
PubNub Functions est une plateforme sans serveur pour traiter les messages côté PubNub. Les fonctions sont écrites en JavaScript et exécutées dans un environnement isolé sécurisé (V8 isolate). Elles peuvent transformer, filtrer, mettre en mémoire tampon et rediriger les messages avant qu'ils ne soient livrés aux abonnés.
Stream Controller est un mécanisme de routage intégré qui gère le flux de messages en fonction de règles. Les règles déterminent quels messages sont livrés, lesquels sont rejetés et lesquels sont envoyés à PubNub Functions pour traitement. Stream Controller prend en charge le routage conditionnel par contenu du message, type de canal ou métadonnées.
Selon le blog PubNub (2024), PubNub Functions réduit les coûts d'infrastructure serveur pour le traitement des messages de 40 à 60 % en exécutant la logique de filtrage et de transformation sur les nœuds périphériques de PubNub plutôt que sur votre propre serveur. Les fonctions ont accès aux requêtes HTTP, au stockage Key-Value et à d'autres fonctions dans le même espace.
Le SDK PubNub pour les plateformes mobiles est disponible pour iOS (Swift), Android (Kotlin/Java), Flutter (Dart) et React Native (JavaScript). Les SDK mobiles prennent en charge toute la gamme de fonctionnalités : pub/sub, présence, historique, PAM et PubNub Functions. Pour les notifications push, PubNub s'intègre avec APNs et FCM via un mécanisme spécial de passerelle push mobile.
L'optimisation pour les appareils mobiles comprend un heartbeat adaptatif, un traitement par lots des messages et la prise en charge des modes d'arrière-plan. Le SDK PubNub pour iOS utilise l'API Background Task pour maintenir la connexion lorsque l'application est réduite (jusqu'à 30 secondes de temps d'arrière-plan standard). Pour un fonctionnement en arrière-plan plus long, des notifications push sont nécessaires.
Mobile Push Gateway est un mécanisme d'envoi de notifications push via PubNub. Lorsqu'un message est publié dans un canal, PubNub détermine automatiquement quels abonnés sont déconnectés et leur envoie une notification push via APNs (iOS) ou FCM (Android). La configuration est effectuée une fois dans le panneau d'administration — après cela, tous les messages du canal sont automatiquement dupliqués dans le canal push. Selon la documentation PubNub (2025), la passerelle traite jusqu'à 10 000 notifications push par seconde.
Foire aux questions
PubNub propose plus de SDK (plus de 75 plateformes), des fonctions sans serveur intégrées et Stream Controller pour le traitement des messages. Pusher est plus facile à configurer, mais PubNub offre plus de contrôle sur le routage et la transformation des données.
PubNub utilise un mécanisme at-least-once avec nouvelle tentative automatique en cas d'échec. Chaque message possède un timetoken unique pour la déduplication. Les messages sont mis en mémoire tampon pendant 30 secondes pour les abonnés hors ligne.
Le plan gratuit comprend 100 connexions simultanées et 1 million de messages par mois. Les plans payants commencent à 49 $/mois pour 1 000 connexions simultanées avec messages illimités.
Oui, PubNub prend en charge TLS 1.3 pour toutes les connexions et le chiffrement optionnel de bout en bout côté client (AES-256) avec gestion des clés via PAM. Le mode Cipher Key est disponible pour les clients enterprise.
PubNub fournit des SDK pour plus de 75 plateformes, y compris JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust et Objective-C. C'est le plus grand écosystème parmi les services en temps réel.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi