Невозможно использовать ASP.NET Core SignalR с более чем одним пользователем

У меня проблема с веб-сайтом чата при запуске Azure SignalR с более чем одним пользователем. например

Пользователь A входит в систему и может нормально отправлять / получать сообщения, пользователь B также входит в систему и получает ошибку JavaScript. Если пользователь A закрывает окно браузера, то пользователь B может отправлять / получать сообщения в порядке, и наоборот.

Это технология, которую я использую:

Ошибка, кажется, исходит от клиента Javascript SignalR.

Это сообщение об ошибке консоли Google Chrome, которое я получаю:

Мой код JS выглядит так:

function setChatConnection() {
    var chatConnection = new signalR.HubConnectionBuilder()
        .withUrl('/chat')
        .configureLogging(signalR.LogLevel.Information)
        .build();
    bindConnectionMessage(chatConnection);
    chatConnection.start()
        .then(function () {
             chatConnection.send('joingroup');
        })
        .catch(function (error) {
            console.error(error.message);
        });
}

Я выполнил некоторую отладку, и она, похоже, попала в метод chatConnection.send('joingroup') до того, как произошла ошибка, хотя я думаю, что это красная сельдь, я добавил некоторую отладку в метод OnConnectedAsync в хабе и могу подтвердить, что это тоже не называется.

В моем хабе нет ничего необычного, я добавил некоторые логи, и похоже, что хаб не может быть вызван, когда второй пользователь пытается использовать чат

    public override Task OnConnectedAsync()
    {
        return base.OnConnectedAsync();
    }

    public async void JoinGroup()
    {
        await Groups.AddToGroupAsync(Context.ConnectionId, "Test");
    }

У кого-нибудь есть идеи, почему это происходит? Я также попытался перейти на платный уровень Azure SignalR, но все еще получаю ту же проблему.

0 ответов

Другие вопросы по тегам