如何从 Controller 的 Action 中调用集线器方法?这样做的正确方法是什么?

有人在帖子中使用过这个:

DefaultHubManager hd = new DefaultHubManager(GlobalHost.DependencyResolver);
var hub = hd.ResolveHub("AdminHub") as AdminHub;
hub.SendMessage("woohoo");

但对我来说,那就是抛出:



我也读过你可以创建一个集线器上下文,但我不想对 Action 负责,也就是说, Action 做如下事情:
hubContext.Client(...).someJsMethod(..)

最佳答案

正确的方法是实际创建集线器上下文。如何以及在何处执行此操作取决于您,这里有两种方法:

  • 在您的集线器中创建一个静态方法(不必在您的集线器中,实际上可以在任何地方)然后您可以通过 AdminHub.SendMessage("wooo") 调用它

  • 一起避免静态方法,直接发送到集线器客户端

  • 关于asp.net-mvc - 从 Controller 的操作中调用集线器方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17395201/

    10-14 11:28
    查看更多