How to intercept, in react-native, the signalR error 'Error: Server timeout elapsed without receiving a message from the server.'?
How to intercept, in react-native, the signalR error 'Error: Server timeout elapsed without receiving a message from the server.'?
我在 react-native 中使用包 @aspnet/signalr 来连接我的服务器。
在应用程序处于前台之前,一切正常,如果我在没有收到错误的情况下失去连接,我可以重新连接。
当我在后台长时间打开应用程序时,我可以立即重新连接到我的服务器,但我收到错误 Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'
如何拦截这个错误?
这是我的一段代码:
connection = new signalR.HubConnectionBuilder()
.withUrl("http://192.168.xxx.xxx/notificationHub?userId=" + authInfo.userId)
.build();
connection.on("receiveMessage", data => {
console.log('*** MESSAGGIO RICEVUTO ***');
Alert.alert(data);
});
connection.start()
.then(() => console.log("Connessione avvenuta"))
.catch((err) => console.log(err);
connection.onclose()
.then(() => connection.start(););
谢谢
Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'
serverTimeoutInMilliseconds
的默认超时值为 30,000 毫秒(30 秒),如果超过此超时时间仍未收到来自服务器的任何消息,连接可能会因上述错误而终止。
要解决此问题,请检查您是否只是更新了 SignalR 集线器的 KeepAliveInterval
设置,但没有更改客户端的 serverTimeoutInMilliseconds
值。
并且推荐的 serverTimeoutInMilliseconds
值是 KeepAliveInterval
值的两倍。
更新:
Is there a way to intercept this error and manage the error without warning?
如果您不希望 signalR 客户端在浏览器控制台选项卡中记录此错误,您可以尝试将 LogLevel 修改为 None
。
.configureLogging(signalR.LogLevel.None)
然后管理 onclose
回调中的错误,如下所示。
connection.onclose(error => {
//...
console.log("Connection Disconnected");
});
我在 react-native 中使用包 @aspnet/signalr 来连接我的服务器。
在应用程序处于前台之前,一切正常,如果我在没有收到错误的情况下失去连接,我可以重新连接。
当我在后台长时间打开应用程序时,我可以立即重新连接到我的服务器,但我收到错误 Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'
如何拦截这个错误?
这是我的一段代码:
connection = new signalR.HubConnectionBuilder()
.withUrl("http://192.168.xxx.xxx/notificationHub?userId=" + authInfo.userId)
.build();
connection.on("receiveMessage", data => {
console.log('*** MESSAGGIO RICEVUTO ***');
Alert.alert(data);
});
connection.start()
.then(() => console.log("Connessione avvenuta"))
.catch((err) => console.log(err);
connection.onclose()
.then(() => connection.start(););
谢谢
Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'
serverTimeoutInMilliseconds
的默认超时值为 30,000 毫秒(30 秒),如果超过此超时时间仍未收到来自服务器的任何消息,连接可能会因上述错误而终止。
要解决此问题,请检查您是否只是更新了 SignalR 集线器的 KeepAliveInterval
设置,但没有更改客户端的 serverTimeoutInMilliseconds
值。
并且推荐的 serverTimeoutInMilliseconds
值是 KeepAliveInterval
值的两倍。
更新:
Is there a way to intercept this error and manage the error without warning?
如果您不希望 signalR 客户端在浏览器控制台选项卡中记录此错误,您可以尝试将 LogLevel 修改为 None
。
.configureLogging(signalR.LogLevel.None)
然后管理 onclose
回调中的错误,如下所示。
connection.onclose(error => {
//...
console.log("Connection Disconnected");
});