3

We use SignalR in several applications – it’s very handy and works well! :-) We usually have a C# server side and a JavaScript client.

But now we have a “special need”: On the server side, we would like to have one and the same method executed regardless of what message type the client sends. A kind of “catch-all method” in the SignalR server. (It’s for a special testing purpose – there will be added new message types all the time. The message parameter is always an object.)

Is this possible? I know about the HubMethodNameAttribute, and I basically would like to be able to use some sort of wildcard there. Something equal to this in the hub class:

[HubMethodName("*")]
public Task MyCatchAll(object par)
{
    // handle the message
}

Or some other way to always get the same method called, regardless of message type.

We don’t want to have to maintain a list of all possible messages, like this:

public Task OneOfTheMessageTypes(object par) => MyCatchAll(par);
public Task AnotherMessageType(object par) => MyCatchAll(par);
public Task AndYetAnotherOne(object par) => MyCatchAll(par);
public Task AndSoOn(object par) => MyCatchAll(par);
...

(I’ve tried using an IHubFilter, but that isn’t called until SignalR has identified the method to call; can’t be used for message types not defined.)

I’d be most grateful for some help from a SignalR expert! :-)

/Anders from Sweden

UglySwede
  • 429
  • 1
  • 7
  • 16

0 Answers0