SignalR架构 - 中央或分布式集线器

时间:2014-03-28 09:34:09

标签: asp.net .net architecture signalr signalr-hub

假设我有3个申请 -

WebApp 1 - 一个为html页面提供服务的NancyFX应用程序。还有一个SignalR中心,用于该应用程序用户之间的消息传递通信。 (有时会向WebApp2发送消息)

WebApp 2 - 一个为html页面提供服务的NancyFX应用程序。有一个SignalR集线器从WebApp 1接收消息并更新WebApp 2的用户。

WebApp3 - 一个自托管的WebAPI,它没有SignalR集线器,但会向WebApp2发送消息以更新其连接的客户端。

所以我的问题是 - 在WebApp2和WebApp1中保留两个集线器的方式,还是应该有一个(可扩展的)专用SignalR服务器来托管WebApp2和WebApp1的集线器以促进通信?

谢谢..

1 个答案:

答案 0 :(得分:1)

很难说什么对你最好,因为我们没有关于你的负载要求或认证/授权如何在你的应用程序中工作的细节。但是,我会这样说:

您的方案可以被视为类似于更典型的SignalR横向扩展情况,您可以将单个应用程序部署到负载均衡器后面的Web场。在这种情况下,您使用SignalR的扩展(“背板”)功能进行服务器到服务器通信,以便无论发生在哪个服务器上,外发消息都会到达客户端。你的情况确实没有什么不同,除了你有三种不同的应用程序在起作用。只要您的所有三个应用程序都托管相同的集线器类(通过共享集线器组件)并连接到同一个扩展背板,它应该可以正常工作。