Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc SignalR和ASP.NET MVC:业务层的集成_Asp.net Mvc_Signalr_Business Layer - Fatal编程技术网

Asp.net mvc SignalR和ASP.NET MVC:业务层的集成

Asp.net mvc SignalR和ASP.NET MVC:业务层的集成,asp.net-mvc,signalr,business-layer,Asp.net Mvc,Signalr,Business Layer,我们的应用程序分为几个层,最重要的是: 数据层 业务层 表示层(ASP.NET MVC 5) 业务层必须通过信号器(表示层)向连接的客户机直播一些信息。这样做的最佳实践是什么 业务层是否应该使用OWIN自托管信号服务器?或者,如果表示层定义了一个由业务层调用以将信息推送到表示层的webservice(其中包含信号器逻辑),那么它是否更干净 还有更好的主意吗 非常感谢 Levi我为SignalR创建了一个事件聚合器(Service bus)代理,这样您就可以在域中的任何位置(业务、数据等)触发

我们的应用程序分为几个层,最重要的是:

  • 数据层
  • 业务层
  • 表示层(ASP.NET MVC 5)
业务层必须通过信号器(表示层)向连接的客户机直播一些信息。这样做的最佳实践是什么

业务层是否应该使用OWIN自托管信号服务器?或者,如果表示层定义了一个由业务层调用以将信息推送到表示层的webservice(其中包含信号器逻辑),那么它是否更干净

还有更好的主意吗

非常感谢
Levi

我为SignalR创建了一个事件聚合器(Service bus)代理,这样您就可以在域中的任何位置(业务、数据等)触发事件,并将其转发给您的客户

使用nuget安装

Install-Package SignalR.EventAggregatorProxy 
按照wiki进行设置所需的几个步骤

一旦配置好,您就可以监听来自javascript的事件

ViewModel = function() {
   signalR.eventAggregator.subscribe(MyApp.Events.TestEvent, this.onTestEvent, this);
};
演示项目:


只需在您的业务层中安装SignalR即可

安装软件包Microsoft.AspNet.signal

而且

GlobalHost.ConnectionManager.GetHubContext<BroadcastHub>().Clients.All.Broadcast(message);
*消息是您的广播字符串消息

这对我很管用

public class NotificationHub : Hub
{

}