Сервер часто теряет соединение Azure SignalR
Мой проект ASP.NET Web API (целевая среда: .NET Framework 4.6.2) часто теряет связь со службой Azure SignalR (бесплатный уровень). Я следовал примеру, как показано в примере с " aspnet " в чате.
Мое клиентское приложение основано на Angular JS. Сообщения отправляются клиентам, но через несколько часов соединение с сервером со службой Azure SignalR теряется и больше не устанавливается.
Насколько я понимаю из документации MS Azure SignalR Internals:
Если соединение с сервером отключено из-за проблем с сетью,
- Соединение с сервером начинает переподключаться автоматически.
Следующая ошибка возвращается в ответ:
Служба Azure SignalR еще не подключена, повторите попытку позже.
Однако этого, похоже, не происходит, т. Е. Соединение с сервером со службой Azure SignalR больше не устанавливается.
nuget
пакеты:
- Microsoft.AspNet.SignalR v2.4.0
- Microsoft.AspNet.SignalR.Core v2.4.0
- Microsoft.AspNet.SignalR.SystemWeb v2.4.0
- Microsoft.Azure.SignalR.AspNet v1.0.0-preview1-10317
- Microsoft.Azure.SignalR.Protocols v1.0.6
2 ответа
В настоящее время существует проблема с Microsoft.Azure.SignalR.AspNet v1.0.0-preview1-10317
, Исправление планируется выпустить на этой неделе.
Вы добавили код обработки ошибок в свой клиент, как показано ниже:
// Define handlers for any errors
//
this.hubConnection.error((error: any) => {
// Push the error on our subject
//
this.hubConnection.start()
.done(() => {
this.startingSubject.next();
//Invoke connect method on Hub
// this.hubProxy.invoke("Connect", userId, usertype);
})
.fail((error: any) => {
this.startingSubject.error(error);
});
});
Также в случае закрытого соединения код будет как
this.hubConnection.onclose(() => {
setTimeout(function(){
this.hubConnection.start()
.done(() => {
this.startingSubject.next();
//Invoke connect method on Hub
// this.hubProxy.invoke("Connect", userId, usertype);
})
.fail((error: any) => {
this.startingSubject.error(error);
});
},3000);
});
Надеюсь, поможет.
М.В.