Signalr 仅向特定客户端发送消息的信号器扩展

Signalr 仅向特定客户端发送消息的信号器扩展,signalr,scale,Signalr,Scale,当我阅读了signalr scaleout选项有一个后面板的文档时,我发现后面板的工作是将消息从一台服务器发送到所有signalr服务器。如果是这样,如果服务器1希望向特定的客户端发送消息,则消息将转到backpane,并从那里发送到所有其他服务器(例如服务器2,3)…其中客户端1与服务器1连接。因此,我们可以将其限制为仅从服务器1发送到客户端1。还有另一个问题,像“已连接”、“已重新连接”这样的事件是否也将路由到backpane和所有其他服务器 谢谢如果您使用的是信号机背板,所有消息都将发送到

当我阅读了signalr scaleout选项有一个后面板的文档时,我发现后面板的工作是将消息从一台服务器发送到所有signalr服务器。如果是这样,如果服务器1希望向特定的客户端发送消息,则消息将转到backpane,并从那里发送到所有其他服务器(例如服务器2,3)…其中客户端1与服务器1连接。因此,我们可以将其限制为仅从服务器1发送到客户端1。还有另一个问题,像“已连接”、“已重新连接”这样的事件是否也将路由到backpane和所有其他服务器


谢谢

如果您使用的是信号机背板,所有消息都将发送到所有服务器。无法将SignalR scaleout提供程序配置为仅向特定服务器发送消息。要么全力以赴,要么一事无成

如果您选择放弃背板,当然可以配置SignalR使用其默认的内存中消息存储,然后手动发送服务器间消息


连接/重新连接/断开连接等事件不涉及发布消息,因此不会将消息路由到所有其他服务器。

您好,感谢提供快速信息。但我们的问题是,我们有两台启用了负载平衡器的服务器,一些客户端将与服务器1和服务器2通信,因此背板是唯一的选项??。但我们不需要将消息发布到所有客户端,而只发布到特定的客户端。因此,背板的问题是,一旦u仅向客户端广播消息,它将发送到所有服务器rt。在这种情况下,每个服务器应确定该客户端是否与其自身连接(使用客户端id进行检查),并将消息发送到该客户端。信号器背板不支持服务器到服务器的直接消息传递。即使他们这样做了,这也会很棘手,因为客户端可以重新连接到另一台服务器并请求他们错过的消息。对于许多应用程序,背板不是瓶颈。从背板检索不需要发送到客户端的消息时,不需要太多处理。如果应用程序将所有消息发送到所有服务器的成本太高,那么您必须找到一种自己发送服务器间消息的方法,这样您就可以避免使用背板。您好,背板上只有一个基本问题(rabbitmq),实际上服务总线何时将消息发送到所有服务器?是否仅当我们调用Clients.All.X()方法时才使用??它将进入所有服务器?例如,如果我们通过loadbalanced使用服务器1和服务器2,那么这两个服务器都有一个名为SendMessage()的方法,该方法具有调用Clients.All或Clients.Client(dictionary[to]).X()的代码。那么,当我们调用Server1::SendMessage()时,什么时候会调用SendMessage()的Server2方法??当调用Clients.All或Clients.Specfic方法时,所有服务器都将得到该方法,这是否像这样?