SignalR Windows服务内存利用率服务器端.NET中的问题

时间:2019-02-15 13:00:28

标签: c# signalr signalr-hub

我在服务器端的Windows Service SignalR Hub中面临内存利用率问题,我需要代码修复来提高性能。

我尝试增加和减小DefaultMessageBufferSize作为服务器代码的一部分,如下所示:

GlobalHost.Configuration.DefaultMessageBufferSize = 2000;

服务器代码:

public class SignalHub : Hub
{
    GlobalHost.Configuration.DefaultMessageBufferSize = 2000;
    SignalR = WebApp.Start<Startup>(SignalRurl);
    return true;
}

客户代码:

public static bool ConnectToSignalRServer()
{
    Connection = new HubConnection(Url);
    var myHub = Connection.CreateHubProxy("SignalHub");
    Connection.Start().ContinueWith(task =>
    {
        if (task.IsFaulted)
        {
        }
        else
        {
            Connection.Closed += Connection_Closed;
        }
    }).Wait();

    myHub.On<string>("GetMessgeFromServer", type =>
    {
        Task.Run(() => RequestData(type));
    });

    myHub.Invoke<string>("GetHostName", BLConstants.strHostName);
    return true;
}

private static void Connection_Closed()
{
    try
    {
        while (true)
        {
            System.Threading.Thread.Sleep(1000 * 10);
            bool connected = ConnectToSignalRServer();
            if (connected)
            {
                break;
            }
        }
    }
    catch (Exception ex){}       
}

SignalR Hub Server的内存利用率应该降低。

0 个答案:

没有答案