У меня проблема с сайтом чата при запуске 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, но все еще получаю ту же проблему.