Проблема использования памяти службы Windows SignalR Проблема в .NET на стороне сервера - PullRequest
0 голосов
/ 15 февраля 2019

Я сталкиваюсь с проблемой использования памяти в службе Windows 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 должно снизиться.

...