我读过一些SignalR教程。为了在我现有的Asp.Net解决方案应用程序中实现SignalR,我做了以下操作:
我已经创建了一个单独的MVC 4项目,并创建了Hub类和一些方法,这样它就可以从现有解决方案中的任何其他MVC项目/客户端调用,这意味着我只想将其作为一种服务来使用。
但现在我有两个问题:
-
我怎么能从其他MVC项目中调用它呢。它会像教程中提到的那样吗,比如在我的.cshtml页面的头部添加必要的脚本文件,并使用如下js脚本:
var hub=$.connection//然后
hub.server.send("一些参数");
-
我想直接从服务器端代码调用Hub代码。以前我用SuperSocket的时候就做过。想用SignalR做同样的方法。我该怎么做?
如果您回答,请提供一些代码示例。非常感谢。
这里有用于从Hub类外部(但在应用程序内部)调用客户端方法的示例代码。基本上,您使用ConnectionManager来调用集线器的客户端。
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.All.myClientMethod(myValue);
要从应用程序外部调用它,我会使用某种公开的方法或服务并包装上面的代码。