SignalR:仅向当前服务器连接的客户端发送消息

本文关键字:客户端 消息 连接 服务器 SignalR | 更新日期: 2023-09-27 18:31:24

我已使用服务总线主题将我的工作线程广播到我的所有 Web 实例的消息。然后,每个 Web 实例负责使用 SignalR 将这些消息流式传输到连接的用户。

我的问题是 SignalR 还使用服务总线向应用程序范围内的连接用户显示它自己的消息(这很棒!因此,每个 Web 实例都将来自辅助角色的消息"转发"到服务总线,从而产生以下问题:1. 消息流式传输到每个连接的客户端 X 次(X = Web 实例数)2. 每小时有数十万(最多数百万)条消息,每条消息通过服务总线 X+1 次(来自辅助角色的 1 次 + 由于 SignalR 的 X 次),导致更多(无用)服务总线成本

=> 我正在寻找一种方法来告诉 SignalR 仅将特定消息流式传输到其自己的连接客户端,而不使用背板。使用队列将消息从辅助角色而不是主题发送到 Web 实例部分解决了问题(消息仅流式传输到客户端一次,但消息仍通过服务总线两次)。

有什么解决办法吗?谢谢!

SignalR:仅向当前服务器连接的客户端发送消息

您可以通过编写自己的消息总线来做到这一点,这并非平凡,但可能。