SignalR在复杂的n层应用程序中

时间:2013-12-12 14:45:58

标签: asp.net signalr

我有一个管理事件记录的n层遗留应用程序,看起来像这样:

enter image description here

警报由Windows服务整理到事件记录中,并由用户通过Web应用程序与服务台票证进行协调。

Web应用程序有一个列表页面,目前每分钟都会重新加载。我想通过使用SignalR广播任何记录更改来替换此轮询行为。

如果此应用程序只是Web部件,那么在Web层中放置SignalR集线器将非常简单。我的困难在于Windows服务如何通知集线器它已对事件记录进行了更改。

由于Web应用程序负载均衡,我正在考虑使用Sql instance to host a SignalR backplane。 Windows服务可以直接与此进行交互吗?

我是否必须创建第三个应用程序来托管SignalR集线器,并以某种方式让Web应用程序与Windows服务进行通信?

欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

您可以在ASP.net中托管SignalR,这无关紧要。只要进行了一些更改,您的Windows服务就应该建立连接并在SignalR上调用一些方法,以便SignalR可以调用其他客户端有关更改的信息。

答案 1 :(得分:0)

除非我误解了您的场景,否则您只需在Windows服务中自行托管SignalR服务器并在那里创建集线器类。您根本不需要将Web应用程序包含在SignalR通信中,只需使用它来提供静态脚本即可。您的网页将SignalR连接到Windows服务中托管的服务器,然后您可以通过该服务通知更新。