Aller au contenu principal

đź§  Comment utiliser Postman avec SignalR (.NET)

🎯 Objectif​

Ce guide explique comment tester un hub SignalR directement depuis Postman, sans client .NET ou JavaScript, en utilisant une connexion WebSocket et le protocole JSON de SignalR.


✅ Pré-requis​

Avant de commencer, assure-toi d’avoir :

  • Un hub SignalR fonctionnel (ASP.NET Core / .NET)
  • Postman v10+ (support des WebSockets)
  • L’URL WebSocket de ton hub, par exemple :
wss://monserveur.com/hubs/monHub

🔗 Connexion WebSocket​

  1. Ouvre Postman
  2. Crée une nouvelle requête WebSocket
  3. Renseigne l’URL de ton hub SignalR :
wss://monserveur.com/hubs/monHub
  1. Clique sur Connect

⚠️ SignalR utilise directement WebSockets. La phase de négociation HTTP n’est pas visible dans Postman.


🔄 Handshake (obligatoire)​

Une fois la connexion établie, tu dois envoyer un message de handshake pour indiquer le protocole utilisé.

📤 Message de handshake​

{"protocol":"json","version":1}

ℹ️ Points importants​

  • Le message est au format JSON
  • Il doit impĂ©rativement se terminer par le caractère ASCII 0x1E (Unit Separator)
  • Sans ce caractère, SignalR ignore le message

💡 Ce caractère est invisible. Tu peux le copier/coller depuis un exemple fonctionnel.

Après l’envoi, le serveur répond généralement par un message vide {} indiquant que le handshake est accepté.


📩 Appeler une méthode du hub (Invoke)​

Une fois le handshake effectué, tu peux invoquer des méthodes exposées par ton hub SignalR.

🔹 Exemple d’invocation​

{
"arguments":["message_to_send"],
"target":"MethodToInvoke",
"type":1
}

🔍 Détail des champs​

ChampDescription
argumentsListe des paramètres envoyés à la méthode
targetNom de la méthode côté serveur
typeType de message (1 = Invocation)

Chaque message doit obligatoirement se terminer par 0x1E.


📦 Types de messages SignalR​

SignalR définit plusieurs types de messages. Les plus courants sont :

TypeValeurDescription
Invocation1Appel d’une méthode du hub
Completion3Réponse à une invocation
Ping6Maintien de la connexion

Dans Postman, seul le protocole JSON est facilement testable.


📥 Réception des messages serveur​

Si ton hub envoie des messages du serveur vers le client :

  • Reste connectĂ© après le handshake
  • Les messages reçus s’affichent automatiquement dans la console WebSocket de Postman

Exemple de message reçu :

{
"type": 1,
"target": "OnProgress",
"arguments": [50]
}

🛠️ Problèmes fréquents​

ProblèmeCause probable
Connexion fermée immédiatementHandshake manquant
Aucun effet lors de l’envoi0x1E manquant
Erreur côté serveurMauvais nom de méthode (target)