为什么我的SignalR-Application这么慢?

时间:2018-08-08 10:17:18

标签: c# asp.net asp.net-mvc signalr signalr-hub

我有以下设置:

  • jQuery v2.2.4(客户端)
  • SignalR v2.3.0(服务器)
  • ASP.NET C#MVC 4

我现在正在尝试使用SignalR进行数据传输,以处理大约3500-〜5000键值对。这些对包含一个ID作为密钥,一个长名称作为值。

我正在从我的JS客户端向服务器发送请求,服务器会立即回答结果,但是客户端需要几分钟到几分钟才能下载数据。 5分钟后,客户端已从服务器下载了700个字节(!)。

这是在具有SSD和i5作为CPU的localhost上运行的,因此它应该运行得更快。

客户代码:

var selectedMarketID = GlobalVariables._currentMarketID;
var _dict = {
    "selectedMarketID": selectedMarketID
};
var dict = JSON.stringify(_dict);
GlobalVariables._globalBroadcastStation.server.sendUserAvailableOrderStrings(dict);

服务器代码:

public void SendUserAvailableOrderStrings(string JSONData)
{
var userData = GetData();
Clients.Caller.messageReturn("availableOrderStrings", JsonConvert.SerializeObject(userData));
}

SignalR启动类:

using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(WebApplication1.Classes.SignalR.Startup))]
namespace WebApplication1.Classes.SignalR
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            GlobalHost.Configuration.DefaultMessageBufferSize = 500;
            app.MapSignalR();
        }
    }
}

在这种情况下,功能Clients.Caller.messageReturn仅向用户显示输出。因此,那里没有进一步的计算。

无法拆分数据以将数据连续传输到用户,因为用户可以轻松更改前端中的设置,这将导致向服务器提出SendUserAvailableOrderStrings的新请求。

为什么SignalR-Connection这么慢?

0 个答案:

没有答案