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

时间:2013-09-15 00:10:29

标签: c# asp.net azure signalr azureservicebus

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

我的问题是SignalR还使用Service Bus向应用程序范围内的连接用户显示它自己的消息(这很棒!)。因此,每个Web实例都会“转发”从工作者到Service Bus的消息,从而产生以下问题: 1.消息被流式传输X次到每个连接的客户端(X = Web实例的数量) 2.每小时有数十万(至数百万)个消息,每个消息通过服务总线X + 1次(工作人员1次+由于SignalR导致X次),导致更多(无用)服务总线成本

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

任何解决方案? 谢谢!

1 个答案:

答案 0 :(得分:0)

你可以通过编写自己的消息总线来做到这一点,这是非常重要但可能的。