SignalR ожидает подключения - PullRequest
0 голосов
/ 26 сентября 2018

Я реализую библиотеку SignalR для использования веб-сокета в виде «очереди» в приложении ASP.NET MVC.

Все работает, как ожидается, когда есть только два пользователя.Когда третий входит в систему (я имею в виду, я открываю новую вкладку), его запрос на запуск SignalR находится на рассмотрении, и другие пользователи больше не могут использовать приложение.

Это происходит со всеми браузерами: если я открою 3 Chromeвкладки, или 3 Firefox, или 2 Chrome, или 1 Firefox, или 2 Firefox, и 1 Chrome ... это ожидает навсегда.

enter image description here

Мой кодтакой же, как тот, который предусмотрен для учебных пособий SignalR: «Начало работы с SignalR 2 и MVC 5».

Может кто-нибудь решить эту проблему?Я начинаю думать, что это ограничение IIS, но я не уверен на 100%.Я использую последнюю версию SignalR (2.3.0), 4.6.1 версию ASP (я уже включил WebSockets в конфигурации IIS).

Я нашел похожий вопрос ( Ожидается запуск SignalR) но, похоже, он не дает ответа.

Код JavaScript (клиента):

 var attendHub = $.connection.attendHub;

    // Create a function that the hub can call back
    attendHub.client.reloadGrid = function (sr) {
        // Business logic
        }
    };

    $.connection.hub.start();

Код сервера-концентратора (C #):

public class AttendHub : Hub
{
    private static readonly IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<AttendHub>();

    public static void RefreshAttendList(int branchId)
    {
        // Business logic
        ///...
        hubContext.Clients.All.ReloadGrid(sr);
    }
}

И я вызываю метод RefreshAttendList из контроллера, выполняя эту строку:

AttendHub.RefreshAttendList(AppInfo.ActiveUser.BranchId);

Что я могу делать неправильно?

1 Ответ

0 голосов
/ 27 сентября 2018

Ну, я понял, что это локальное ограничение IIS, потому что я изменил конфигурацию, чтобы использовать IIS Express вместо Local, и это работает как прелесть!

Надеюсь, это поможет любому с тем жевыпуск!

...