Azure上的信号器:呼叫单个客户端所需的服务总线?

时间:2012-07-15 10:14:34

标签: c# .net azure cloud signalr

我读到Azure上的Signalr需要服务总线实现(例如https://github.com/SignalR/SignalR/wiki/Azure-service-bus)以实现可伸缩性。

但是,我的服务器只对单个客户端(调用者)进行回调:

// Invoke a method on the calling client
Caller.addMessage(data);

如果不需要Signalr的广播功能,还需要一个底层服务总线吗?

2 个答案:

答案 0 :(得分:9)

Service Bus依赖项不是Azure特有的。每当您有多个服务器在运行时,您的一些signalR客户端将创建与特定服务器的连接。如果要保持多个服务器同步,需要处理服务器到服务器的实时通信。 pub-sub服务总线模型很好地满足了这个要求。

  

dfowleR在评论中列出了具体案例。确保你读到那么远!

如果您在单个服务器上运行(在Azure上没有sla),signalR将在Cloud Service Web角色以及新的Azure Web站点上正常运行。我在这个简单的场景中做了一个screencast,它没有服务总线依赖,但只在一台服务器上运行。

答案 1 :(得分:2)

为了支持负载平衡场景,是否可以在多个实例(即Azure)之间建立“服务器到服务器”SignalR PersistConnection? 如果是这样,我们可以使用SQL Azure表,其中所有实例在启动时注册,因此最新的实例可以连接到以前的实例。