• 1. étapes pour implémenter WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

  • 1.1. Initialiser le projet et installer les dépendances

  • 1.2. Créer le serveur WebSocket (fichier server.js)

  • 1.3. Dockeriser l’application

  • 1.4. Tester la latence et la montée en charge

  • 2. bonnes pratiques et astuces

  • 3. conclusion

mise en place de WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

Image de mise en place de WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

Dans un SaaS, offrir des fonctionnalités en temps réel (notifications, chat, suivi live) améliore l’expérience utilisateur et la rétention. Cet article détaille comment intégrer WebSockets via Socket.IO dans une application Node.js conteneurisée avec Docker. Vous verrez les configurations, les commandes, les pièges à éviter et quelques mesures de performance clés.

étapes pour implémenter WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

1. Initialiser le projet et installer les dépendances

mkdir realtime-saas && cd realtime-saas
npm init -y
npm install express socket.io

On crée un petit serveur Express pour accueillir Socket.IO.

2. Créer le serveur WebSocket (fichier server.js)

const express = require('express');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server, {
  cors: { origin: '*' },
  pingInterval: 10000,
  pingTimeout: 5000
});

// gestion des connexions
io.on('connection', socket => {
  console.log(`Client connecté : ${socket.id}`);
  socket.on('message', data => {
    // renvoie à tous les clients
    io.emit('message', data);
  });
  socket.on('disconnect', () => {
    console.log(`Client déconnecté : ${socket.id}`);
  });
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => console.log(`⚡ Serveur à l'écoute sur :${PORT}`));

3. Dockeriser l’application

# Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
# docker-compose.yml
version: '3.8'
services:
  realtime-saas:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production

Commandes :

docker-compose build
docker-compose up -d

4. Tester la latence et la montée en charge

Utilisez autocannon pour mesurer les performances sous 100 connexions concurrentes :

npm install -g autocannon
autocannon -c 100 -d 30 http://localhost:3000/socket.io/

Exemple de résultat :

MetricValeur
Req/sec1 200
P95 Latency45 ms

bonnes pratiques et astuces

  • Adapter Redis pour scaler sur plusieurs instances : utilisez socket.io-redis afin de partager les messages.
  • CORS strict : en production, limitez l’origine aux domaines de votre SaaS.
  • SSL/TLS : dockerisez un reverse proxy Nginx ou Apache pour sécuriser les échanges.
  • Limites de mémoire : Node.js détient par défaut 512 Mo de heap. Pour monter plus haut, passez le flag --max-old-space-size=1024.
  • Keep-alive et ping/pong : ajustez les intervalles pour détecter rapidement les connexions mortes.

conclusion

Vous disposez maintenant d’une base technique pour proposer du temps réel fiable dans votre SaaS Node.js conteneurisé. L’étape suivante : déployer en production avec une CI/CD robuste et un cluster Kubernetes pour la haute disponibilité. Pour un accompagnement personnalisé, contactez nos experts.

Call to action : Demandez un audit gratuit de votre architecture WebSockets sur Novane.

Image de top 10 podcasts tech et business à suivre en 2025

top 10 podcasts tech et business à suivre en 2025

Découvrez notre top 10 des podcasts tech et business incontournables de 2025 pour booster idées, compétences et veille en marketing, IA et management.
Image de angular 18 : les nouveautés pour booster vos apps web en 2025

angular 18 : les nouveautés pour booster vos apps web en 2025

Découvrez comment Angular 18 révolutionne vos apps web en 2025 avec un SSR optimisé, l’hydratation revisitée, des bundles allégés et de nouveaux DevTools.
Image de intégrer l’authentification Microsoft Entra ID dans une API express.js node.js

intégrer l’authentification Microsoft Entra ID dans une API express.js node.js

Sécurisez votre API Express.js avec Microsoft Entra ID : enregistrement Azure, intégration MSAL, protection des routes et gestion d’erreurs
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune