PubNub — qu'est-ce que c'est, SDK temps réel et comment ça fonctionne dans les applications

Auteur : IT Sectr Publié le : 2026-06-02 Temps de lecture : 8 min

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 messages en temps réel avec plus de 15 centres de données et une livraison garantie.
  • Pub/Sub avec clés — publication et abonnement via des clés publish/subscribe avec séparation des droits d'accès.
  • Stream Controller — gestion du flux de messages avec prise en charge du filtrage, de la transformation et de la mise en mémoire tampon.
  • Presence — suivi de l'état en ligne des participants du canal avec détection par délai d'attente.
  • SDK pour plus de 75 plateformes — le plus grand écosystème de bibliothèques clientes parmi les services en temps réel.

Qu'est-ce que PubNub ?

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).

Principes clés de PubNub

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.

Comment fonctionne PubNub

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.

Flux de message

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.

Clés PubNub : publish, subscribe, secret

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).

Canaux PubNub

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ètreMaximumNote
Longueur du nom du canal92 caractèresLettres latines, chiffres, -, _
Abonnés par canal50 000Supérieur — fragmenter
Channel Groups2000 groupes / cléJusqu'à 500 canaux par groupe
Historique (stockage)IllimitéPaiement par volume de stockage

Comment utiliser PubNub dans un projet

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.

S'abonner à un canal

js
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' }
});

Obtenir l'historique des messages

js
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 et Stream Controller

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.

PubNub dans les applications mobiles

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

En quoi PubNub diffère-t-il de Pusher ?

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.

Comment PubNub garantit-il la livraison des messages ?

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.

Combien coûte PubNub ?

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.

PubNub prend-il en charge le chiffrement ?

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.

Quels langages le SDK PubNub prend-il en charge ?

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é

  • PubNub est un réseau mondial de messagerie en temps réel avec plus de 15 centres de données et la prise en charge de plus de 75 plateformes.
  • Le système de clés publish/subscribe/secret + PAM offre une gestion flexible des droits d'accès.
  • PubNub Functions permet un traitement de messages sans serveur sans infrastructure serveur propre.
  • Stream Controller gère le routage, le filtrage et la transformation des messages sur les nœuds périphériques du réseau.
  • Mobile Push Gateway envoie automatiquement des notifications push via APNs et FCM pour les abonnés hors ligne.
  • Les canaux supportent jusqu'à 50 000 abonnés, et Channel Groups simplifie la gestion de plusieurs canaux.
  • Pour les projets avec un large support de plateformes et un traitement de messages intégré, choisissez PubNub ; pour des scénarios plus simples, Pusher est approprié.

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.

Discuter du projet

Lisez aussi