SignalR 和 ASP.NET MVC:业务层集成



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

  • 数据层
  • 业务层
  • 表示层(ASP.NET MVC 5)

业务层必须通过 SignalR(表示层)向连接的客户端实时广播一些信息。这样做的最佳实践是什么?

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

有什么更好的主意吗?

多谢利瓦伊

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

使用 nuget 安装

Install-Package SignalR.EventAggregatorProxy 

按照 wiki 了解设置它所需的几个步骤。 https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

配置完成后,您可以侦听来自javascript的事件

ViewModel = function() {
   signalR.eventAggregator.subscribe(MyApp.Events.TestEvent, this.onTestEvent, this);
};

演示项目:

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4

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

Install-Package Microsoft.AspNet.SignalR

和。。。

GlobalHost.ConnectionManager.GetHubContext<BroadcastHub>().Clients.All.Broadcast(message);

*广播中心可以是空的,比如

public class NotificationHub : Hub
{
}

*消息是您的广播字符串消息

这对我很好

相关内容

  • 没有找到相关文章

最新更新