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