2014-03-28 65 views
0

假设我有3个应用程序 -SignalR架构 - 中央或分布式集线器

WebApp 1 - 一个NancyFX应用程序,提供html页面。还有一个用于该应用程序用户之间的消息通信的SignalR中心。 (并且有时将消息发送到WebApp2)

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

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

所以我的问题是让WebApp2和WebApp1中的两个集线器继续走下去,还是应该有一个可扩展的专用SignalR服务器来托管WebApp2和WebApp1的集线器以促进通信?

谢谢..

回答

0

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

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