SignalR - 从服务器端代码调用 Hub 类方法(存在于单独的 MVC 项目中)
Posted
技术标签:
【中文标题】SignalR - 从服务器端代码调用 Hub 类方法(存在于单独的 MVC 项目中)【英文标题】:SignalR - Calling Hub class method (present in a separate MVC project) from Server side code 【发布时间】:2013-07-21 16:45:49 【问题描述】:我已经阅读了一些 SignalR 教程。 为了在我现有的 Asp.Net 解决方案应用程序中实现 SignalR,我执行了以下操作:
我创建了一个单独的 MVC 4 项目并创建了一个 Hub 类以及一些方法,以便可以从现有解决方案中存在的任何其他 MVC 项目/客户端调用它,这意味着我只想将它用作服务。
但现在我有两个问题:
如何从其他 MVC 项目中调用它。会不会和教程中提到的一样,例如在我的 .cshtml 页面的头部添加必要的脚本文件并使用如下的 js 脚本:
var hub = $.connection.; //然后
hub.server.send("一些参数");
我也想直接从服务器端代码调用集线器代码。之前我使用 SuperSocket 的时候做过。想使用 SignalR 做同样的方法。我该怎么做?
如果您回答,请提供一些代码示例。非常感谢。
【问题讨论】:
【参考方案1】:有从 Hub 类外部(但在应用程序内部)here 调用客户端方法的示例代码。基本上,您使用 ConnectionManager 来调用集线器的客户端。
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.All.myClientMethod(myValue);
要从您的应用程序外部调用它,我会使用某种公开的方法或服务并包装上述代码。
【讨论】:
var context = GlobalHost.ConnectionManager.GetHubContext以上是关于SignalR - 从服务器端代码调用 Hub 类方法(存在于单独的 MVC 项目中)的主要内容,如果未能解决你的问题,请参考以下文章