我有一个管理事件记录的n层遗留应用程序,看起来像这样:
警报由Windows服务整理到事件记录中,并由用户通过Web应用程序与服务台票证进行协调。
Web应用程序有一个列表页面,目前每分钟都会重新加载。我想通过使用SignalR广播任何记录更改来替换此轮询行为。
如果此应用程序只是Web部件,那么在Web层中放置SignalR集线器将非常简单。我的困难在于Windows服务如何通知集线器它已对事件记录进行了更改。
由于Web应用程序负载均衡,我正在考虑使用Sql instance to host a SignalR backplane。 Windows服务可以直接与此进行交互吗?
我是否必须创建第三个应用程序来托管SignalR集线器,并以某种方式让Web应用程序与Windows服务进行通信?
欢迎任何建议。
答案 0 :(得分:1)
您可以在ASP.net中托管SignalR
,这无关紧要。只要进行了一些更改,您的Windows服务就应该建立连接并在SignalR
上调用一些方法,以便SignalR
可以调用其他客户端有关更改的信息。
答案 1 :(得分:0)
除非我误解了您的场景,否则您只需在Windows服务中自行托管SignalR服务器并在那里创建集线器类。您根本不需要将Web应用程序包含在SignalR通信中,只需使用它来提供静态脚本即可。您的网页将SignalR连接到Windows服务中托管的服务器,然后您可以通过该服务通知更新。