Everything runs on your machine — your input is processed right here in your browser and never uploaded to any server.
SignalR Hub Tester
not connected
Connects WebSockets-only with skipNegotiation, so the hub must have the WebSocket transport enabled (it is by default in ASP.NET Core). Register the method names you want to listen for before connecting — SignalR only delivers named methods.
How it works
1
Enter the hub URL — the endpoint you map in ASP.NET Core, like https://your-app.com/chathub.
2
If the hub requires authentication, paste a bearer token (JWT) — it is passed the standard SignalR way.
3
List the method names you want to hear, comma-separated — SignalR only delivers methods that are registered by name.
4
Click Connect, then invoke any hub method: arguments can be a JSON array (multiple parameters), one JSON value, or plain text.
5
Server-to-client calls and invocation return values stream into the feed as they happen.
About this tool
SignalR hubs are the realtime backbone of many ASP.NET Core apps, and testing one usually means writing a throwaway C# or JavaScript client. This page is that client, ready to go: connect to a hub, invoke its methods with JSON arguments, and register the method names you expect the server to call back — every delivery lands in a timestamped feed, return values included.
It connects the way Microsoft documents for websocket-only scenarios: the WebSockets transport with skipNegotiation, which also means no sticky-session requirements get in the way. Bearer-token authentication is supported for hubs behind [Authorize] — paste the JWT and it rides along as SignalR’s standard access_token.
100% private
“Your hub URL, token and every invocation travel directly between your browser and the hub over the encrypted WebSocket. Nothing is proxied or recorded — the token in particular never leaves the direct connection to your own server.”
Frequently asked questions
Why does the connection fail when the hub works from my app?
The usual cause is the skipped negotiation: this tester connects WebSockets-only with skipNegotiation, per Microsoft’s documented mode. If your hub sits behind Azure SignalR Service in default mode — which requires the negotiate step to hand out a redirect URL — a direct connection cannot work; test against the hub directly or use a client that can negotiate.
Why don’t I see the server’s messages?
SignalR delivers only methods that were registered by name before they arrive. Add the exact method name (as used in Clients.All.SendAsync("ReceiveMessage", …)) to the listen field before connecting — names are matched case-insensitively.
Which protocol does it speak — JSON or MessagePack?
JSON, SignalR’s default hub protocol. Hubs configured exclusively for MessagePack will refuse the handshake; enable the JSON protocol alongside it for testing.