Retour au blog

WebSockets à l’Edge : Comment j'ai banni les serveurs dédiés pour du multijoueur en temps réel

Si vous avez déjà essayé de développer une application interactive en temps réel — qu'il s'agisse d'un outil collaboratif à la Figma, d'un chat massif ou d'un jeu web multijoueur —, vous connaissez le boss de fin : la gestion de l'état et des WebSockets. Pendant des années, la recette standard n'a pas bougé : on monte une instance Node.js traditionnelle avec Socket.io sur un serveur dédié (ou un VPS), on ajoute un Redis pour synchroniser les instances si on veut scale, et on prie pour que la facture d'hébergement ou la latence réseau ne tue pas le projet. Mais nous sommes en 2026. Faire tourner des serveurs centralisés qui écoutent 24h/24 pour des sessions de jeu ou de travail éphémères, c'est dépassé. Voici comment j'ai banni les serveurs classiques en déportant toute la logique temps réel directement à l'Edge.

Le problème des WebSockets traditionnels : Le coût et la distance

L'architecture serveur classique souffre de deux défauts majeurs lorsqu'on parle de temps réel :

  1. La latence géographique : Si votre serveur unique est hébergé à Paris et que deux joueurs situés à New York et Tokyo s'affrontent, chaque action doit traverser la planète. Pour du multijoueur ou de la collaboration fluide, c'est rédhibitoire.
  2. Le coût du maintien de l'état : Les serveurs stateless (comme les fonctions Serverless classiques (AWS Lambda, Vercel Functions)) sont parfaits pour du HTTP, mais ils sont incapables de maintenir une connexion WebSocket ouverte ou de garder en mémoire l'état d'une partie de jeu sans interroger une base de données toutes les 10 millisecondes.

Pour résoudre ça sans louer une ferme de serveurs dédiés, il fallait une technologie capable de combiner les avantages du Serverless (coût à l'usage, scalabilité automatique) et du Stateful (maintien des connexions et de la mémoire). C'est là que les Cloudflare Durable Objects entrent en scène.


La Solution : L'Edge computing persistant avec les Durable Objects

Pour faire simple, un Durable Object (DO) est une micro-instance de code qui s'exécute sur le réseau mondial de Cloudflare. Sa particularité ? Il possède un stockage persistant ultra-rapide et est unique au monde.

Quand un utilisateur crée une "Room" (un salon de jeu ou un espace de travail), Cloudflare instancie un Durable Object au plus proche de cet utilisateur. Tous les autres participants qui rejoignent cette Room spécifique vont être redirigés automatiquement vers ce même et unique Durable Object, peu importe où ils se trouvent sur la planète.

Pourquoi cette architecture change la donne ?

  • Centralisation de l'état en mémoire vive : Plus besoin de faire des allers-retours épuisants avec une base de données SQL pour savoir si le Joueur A a répondu avant le Joueur B. Le Durable Object maintient l'état du jeu directement dans sa mémoire RAM.
  • Gestion native des WebSockets : Le Durable Object gère et maintient ouverts les WebSockets de tous les joueurs connectés au salon. Dès qu'un événement survient, il le distribue à tout le monde en quelques millisecondes.
  • Facturation au centime près : Pas de partie en cours ? Le Durable Object s'éteint et ne coûte strictement rien. 10 000 parties se lancent en même temps ? Cloudflare crée 10 000 Durable Objects isolés instantanément. C'est la scalabilité infinie du serverless, mais pour du temps réel.

Cas concret : Le moteur derrière Stemzzy

Pour valider et pousser cette architecture dans ses retranchements, j'ai développé Stemzzy, un jeu de blindtest musical multijoueur basé sur les pistes isolées (stems) des morceaux.

Dans un jeu de blindtest, la précision temporelle est cruciale. Si le score dépend de la vitesse à laquelle vous devinez le morceau, vous ne pouvez pas vous permettre d'avoir 200ms de décalage entre les joueurs.

En couplant TanStack Start pour un rendu front-end ultra-léger et les Durable Objects pour le backend de jeu, chaque salon fonctionne comme un micro-serveur dédié autonome. Les connexions WebSockets se font instantanément, les flux audio sont synchronisés et les réponses sont validées à la milliseconde près, sans aucune infrastructure lourde à manager.


Conclusion : Le Serverless n'est plus seulement "Stateless"

Déporter les WebSockets et la gestion d'état à l'Edge n'est plus un fantasme de tech lead : c'est une réalité de production qui permet de diviser ses coûts d'infrastructure par 10 tout en offrant une expérience utilisateur d'une fluidité inégalée.

Si vous construisez un produit qui demande de l'interactivité, du live-chat, de la collaboration ou du gaming web, arrêtez de configurer des serveurs dédiés complexes. Passez à l'Edge.

🕹️ Vous avez un projet temps réel ou collaboratif à lancer ? Que ce soit pour concevoir une architecture Edge scalable ou intégrer les technologies Serverless (Cloudflare Workers, Durable Objects) à votre stack existante, contactez-moi pour qu'on en discute !

Un projet en tête ?

Discutons de votre projet — disponible pour un retainer mensuel.

Réserver un appel gratuit