加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 带负载均衡器的SignalR v2

发布时间:2020-12-16 03:23:49 所属栏目:asp.Net 来源:网络整理
导读:我是SignalR的新手,并且经历了一些教程,因为我的任务是升级当前的实现. 我们有一个使用SignalR(版本1.x)的ASP.NET MVC应用程序.该应用程序位于我们的F5负载平衡云环境中.因此,我们使用相同的负载均衡器有多个站点(针对不同的客户).要使SignalR调用服务器端,
我是SignalR的新手,并且经历了一些教程,因为我的任务是升级当前的实现.

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

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,它确实提到:

This document provides an introduction to using the Hubs API for SignalR version 2 in .NET clients,such as Windows Store (WinRT),WPF,Silverlight,and console applications.

这是一个带有常规类库后端的Web应用程序,用于数据访问.看看这个tutorial,我什么都看不到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)的负载均衡应用程序时需要进行哪些考虑/修改?关于负载平衡等问题,我找不到多少.

或者这是Groups的工作?

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读