我尝试用重新连接来处理断开连接错误,所以我使用nextRetryDelayInMilliseconds方法来重新连接,但是在本例中,如果连接丢失或者连接有一些问题,onclose处理程序就不起作用。
我正在使用“@microsoft/signalr”:Angular 项目中的“^7.0.2”包
我使用了“withAutomaticReconnect”选项,但它没有立即触发。我在超时后得到一个回调。
连接构建器:
this.hubconnection = new HubConnectionBuilder()
.withUrl(url)
.withAutomaticReconnect({
nextRetryDelayInMilliseconds: () => {
this._errorState$.next(true);
return 1000;
}
})
.build();
错误处理程序(如果使用“withAutomaticReconnect”则不会触发):
this.hubConnection.onclose(error => callback(error)
当出现一些与连接相关的错误时,期望立即处理错误。
1条答案
按热度按时间ct2axkht1#
经过测试,我发现正确的格式应该像下面.
在您的方案中,代码应该是
测试后,如果重启signalr服务器,可能不会得到错误信息,这应该是正常的,不知道在生产环境中能不能看到更多,这是标准用法,也可以参考下面的链接。
onclose event in signalr client
建议:
1.上面的测试我在signalr javascript客户端中测试,我也重现了这个问题,如果它不起作用,请使用@microsoft/signalr 7.0.0版本来解决新版本引起的问题。
1.我还使用reconnectDelay属性时,建立连接.