SignalR v2与负载平衡器

我对SignalR非常新,并且已经接受了一些教程,因为我已经负责升级我们当前的实施。

我们有一个使用SignalR(版本1.x)的ASP.NET MVC应用程序。 该应用程序位于我们的F5负载平衡云环境中。 所以我们有多个站点(针对不同的客户)使用相同的负载均衡器。 为了让SignalR调用服务器端,我们使用Microsoft.ASPNET.SignalR.Client命名空间的HubConnection并创建一个像这样的代理(这里是完整的例子):

var hubConnection = new HubConnection("http://www.contoso.com/");
IHubProxy stockTickerHubProxy = hubConnection.CreateHubProxy("StockTickerHub");
stockTickerHubProxy.On<Stock>("UpdateStockPrice", stock => Console.WriteLine("Stock update for {0} new price {1}", stock.Symbol, stock.Price));
await hubConnection.Start();

其中http://contoso.com/是当前客户的网站URL。

我们希望升级到最新的SignalR(版本2.x),我想知道是否有必要使用HubConnection 。 尽管上面的文章指定了版本2,但它确实提到:

本文档介绍如何在.NET客户端(如Windows应用商店(WinRT),WPF,Silverlight和控制台应用程序)中使用SignalR版本2的Hubs API。

这是一个带有常规类库后端的Web应用程序,用于访问数据。 看看本教程,我没有看到有关HubConnection任何信息(它也没有提到负载平衡)。 从聊天教程中考虑以下内容:

public class ChatHub : Hub
{
    public void Send(string name, string message)
    {
        // Call the addNewMessageToPage method to update clients.
        Clients.All.addNewMessageToPage(name, message);
    }
}

然后,在Statup.cs中

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapSignalR();
    }
}

所以我的问题是,我们是否正确使用了SignalR? 如果不是,运行使用SignalR(v2.x)的负载平衡应用程序时需要考虑/修改哪些内容? 我一直无法找到有关负载平衡等的信息。

或者这是团体的工作?


你不需要改变任何结构。 查看signalr redis扩展或其他扩展选项。 基本上你需要安装额外的软件包和ms opentech redis来做负载平衡。 所以扩展将确保每个请求都通过消息总线发送,从而使多个服务器成为可能。

链接地址: http://www.djcxy.com/p/62225.html

上一篇: SignalR v2 with load balancer

下一篇: SignalR and Load Balancing With Active/Active Sticky Sessions