Signalr 信号器未使用客户端上的DNS别名调用结果

Signalr 信号器未使用客户端上的DNS别名调用结果,signalr,Signalr,我连接到我的服务器,它是负载平衡的,一个别名指向2台服务器,01和02,为了参数起见,它绕过robins连接。我可以毫无问题地连接到集线器,甚至可以将内容发送到服务器,但当它返回到客户端时,我从未调用过我的方法。如果我绕过负载平衡器并显式使用服务器名称,它总是可以正常工作 我甚至在跟踪它,我用Clients.Client(clientId).completeJob(stuff)从确切的原始服务器发回消息,这在服务器上执行得很好,但如果我继续这样做,它永远不会完成 哦,它与服务器发送的事件相连接。

我连接到我的服务器,它是负载平衡的,一个别名指向2台服务器,01和02,为了参数起见,它绕过robins连接。我可以毫无问题地连接到集线器,甚至可以将内容发送到服务器,但当它返回到客户端时,我从未调用过我的方法。如果我绕过负载平衡器并显式使用服务器名称,它总是可以正常工作

我甚至在跟踪它,我用Clients.Client(clientId).completeJob(stuff)从确切的原始服务器发回消息,这在服务器上执行得很好,但如果我继续这样做,它永远不会完成


哦,它与服务器发送的事件相连接。我是缺少了什么还是不支持?

服务器发送的事件建立了一个长时间运行的连接,但与WebSocket不同,它不是双向的。该连接只能用于将数据推送到客户端

当WebSocket传输不可用时,Signal使用常规XHR从客户端发送数据。这意味着负载平衡器可能会将客户端到服务器集线器方法调用路由到不同于客户端最初与之建立服务器发送事件连接的服务器

执行
Clients.Client(clientId).completeJob(stuff)
的服务器可能不拥有将消息推送到指定客户端的连接。(尽管从服务器上的集线器方法返回值将通过调用该方法的相同连接将数据发送回客户端。)

信号器可以在负载平衡器后面工作。它只需要多一点设置,以便所有信号服务器可以通过背板(如服务总线或Redis)相互通信。这允许将消息发送到拥有服务器到客户端连接的服务器


详细说明如何在Azure上设置Service Bus背板。

作为更新,它现在通过别名与客户端通信,但不适用于.NET客户端到服务器,因为某些奇怪的原因,它仍然需要使用具体的名称。有此更新吗?如果能看到一些代码,看看您是如何解决这个问题的,以及与之配套的任何环境配置,那就太好了。关于Redis设置的文档有点过时了,但它非常简单,而且工作得非常好。谢谢