Aller au contenu principal

Cycle de Vie

Contrairement à une requête HTTP qui est éphémère (Requête -> Réponse -> Bye), une connexion WebSocket est persistante. Il est souvent crucial de savoir quand un utilisateur arrive ou part.

@SubscribeConnection()

Cette méthode est appelée automatiquement dès qu'un socket se connecte au Namespace de la Gateway.

C'est l'endroit idéal pour :

  • Vérifier un token d'auth (via socket.handshake.auth).
  • Marquer l'utilisateur comme "En ligne" dans ta BDD.
  • Le faire rejoindre une "Room" spécifique.
import { SubscribeConnection } from 'my-fastify-decorators';

@WebSocketGateway('/chat')
export class ChatGateway {

@SubscribeConnection()
handleConnection(socket: Socket) {
console.log(`Nouvel arrivant : ${socket.id}`);
// Ex: socket.join('room-1');
}
}

@SubscribeDisconnection()

Appelé quand le socket coupe la connexion (fermeture d'onglet, perte de réseau...).

import { SubscribeDisconnection } from 'my-fastify-decorators';

@WebSocketGateway('/chat')
export class ChatGateway {

@SubscribeDisconnection()
handleDisconnect(socket: Socket) {
console.log(`Départ de : ${socket.id}`);
// Ex: userService.setUserOffline(...)
}
}