【问题标题】:SignalR 2 & Javascript Client to Server A to Server BSignalR 2 & Javascript 客户端到服务器 A 到服务器 B
【发布时间】:2019-05-04 16:35:15
【问题描述】:

我有以下架构设置。

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

我想知道我能不能做到这样.. 客户端 A => 服务器 A => 服务器 B

客户端 A 可以在哪里连接服务器 A 上的信号器,并使用重写规则,还允许连接到另一个 URI(如 /backend/signalr)到服务器 B?

这种架构背后的原因是因为我有一个为站点提供服务的前端,但还有一个后端处理应用程序,它也需要反馈给客户端(服务器 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

【问题讨论】:

  • 很抱歉,但很高兴知道为什么这至少在没有评论的情况下被否决。

标签: asp.net proxy url-rewriting signalr pass-through


【解决方案1】:

我最终解决了这个问题,因此删除了后端服务器直接从客户端浏览器接收请求。

我创建了一个“代理”,它位于服务器 A 集线器定义类中,当需要后端服务器时,我将创建一个 C# 客户端,然后连接到内部服务器。创建后端服务器将通过 SignalR 发出/发送到前端服务器的所需方法,然后推送到客户端 Javascript 浏览器。

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

如果对此有任何其他实现或想法,我很想知道其他人的想法。它最终确实为我完成了工作,由于我最初的 SignalR 要求,我现在可以将后端服务器从面向公众中移除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多