How can I call a hub method from a controller's action? What is the correct way of doing this?
Someone used this in a post:
DefaultHubManager hd = new DefaultHubManager(GlobalHost.DependencyResolver);
var hub = hd.ResolveHub("AdminHub") as AdminHub;
hub.SendMessage("woohoo");
But for me, that is throwing:
Using a Hub instance not created by the HubPipeline is unsupported.
I've read also that you can create a hub context, but I don't want to give the responsability to the action, that is, the action doing stuff like:
hubContext.Client(...).someJsMethod(..)
The correct way is to actually create the hub context. How and where you do that is up to you, here are two approachs:
Create a static method in your hub (doesn't have to be in your hub, could actually be anywhere) and then you can just call it via
AdminHub.SendMessage("wooo")
Avoid the static method all together and just send directly to the hubs clients