我已经读了很多关于这一点的文章,并且已经出现了很多答案,但是对我来说还是很幸运的。
我有一个解决方案,其中有2个项目,项目1是Web API,项目2是SignalR网站。
在项目1中,我成功导入了项目2库,并且能够在项目2集线器类上调用静态方法,如下所示:
testsignal.ChatHub.Hit("Name", "Hellow??");
我在项目2集线器方法上有一个断点,我知道它命中了该方法,但是它不能反映在客户端(Web客户端)上
这是我的集线器上的方法:
public static void Hit(string name, string message)
{
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.broadcastMessage(name, message);
}
我认为我的问题与GlobalHost有关,我尝试在集线器类中创建一个全局属性,以保存GlobalHost,然后在静态方法中使用它,但是因为它是静态的,所以我不能使用它。
我知道WebClient的工作原理,因为集线器上的连接成功,并且我可以在多个打开的浏览器之间“聊天”。
我的启动类如下:
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
// app.MapSignalR();
//app.MapSignalR(new HubConfiguration() { EnableJSONP = true });
//app.MapSignalR(new HubConfiguration() { Resolver = GlobalHost.DependencyResolver });
HubConfiguration config = new HubConfiguration();
config.EnableJavaScriptProxies = true;
app.MapSignalR(config);
}
有什么想法吗?