SignalR 2&Javascript客户端到服务器A到服务器B

问题描述:

我有以下架构设置。SignalR 2&Javascript客户端到服务器A到服务器B

客户端A(JavaScript)的=>服务器A(有SignalR服务器) 和 客户端A(JavaScript)的=>服务器B(也有SignalR服务器)

我想知道如果我可以把它像所以.. 客户端A =>服务器A =>服务器B

如果客户端A可以在服务器A连接signalr,并使用重写规则,也让喜欢/后端/ signalr要经过到服务器B到另一个URI连接?

这个架构背后的原因是因为我有一个前端服务于其他网站,但后端处理应用程序也需要反馈给客户端(服务器B到客户端A)。我目前在两台服务器上都使用SignalR,客户端可以直接连接到两者。

这个问题的原因是,我想删除后端服务器面向公众,只允许内部网络请求,这很好,可行,但我必须管理的唯一问题是客户端的反馈更新从服务器B到客户端A,这通常必须通过服务器A进行路由。

我在这里看到了一个答案@SignalR with IIS 10 and ARR 3.0,它实际上有类似的问题,除了它没有第一个代理服务器服务SignalR以及。

我想这是另一种不同的情况,因为它在架构中有2个SignalR实现。

另一个想法是,也许这可以通过在服务器B上使用web.config和IP限制来完成,只允许来自服务器A的直接通信,以及使用SignalR的URI来允许公众面对 - 但我更愿意完全删除它可能。

我们的应用程序使用ASP.NET 4.6 IIS 10

+0

对不起,但很高兴知道为什么这是downvoted没有评论至少。 –

我终于解决了这一点,因此从接收直接从客户端浏览器请求删除的后端服务器。

我创建了一个坐在Server A Hub定义类中的'代理',当需要到后端服务器时,我会创建一个C#客户端,然后连接到内部服务器。创建后端服务器然后通过SignalR发送/发送到FrontEnd服务器,然后推送到客户端Javascript浏览器的所需方法。

我认为IIS中的应用程序路由请求功能,因为它不支持HTTPS,这个实现可以完成工作。

如果还有其他实现或想法,我很想知道别人怎么想。它最终为我完成了工作,现在我可以将后端服务器从面向公众的环境中移除,这是由于我最初的SignalR要求。