我正在尝试ASP.NET Core 2.1上的最新SignalR.我有基本的应用程序,但它现在很快就会超时.我看到这个错误 –
Error: Connection disconnected with error ‘Error: Server timeout elapsed without receiving a message from the server.’.
这个超时设置可以在哪里更改?我尝试了文档here,但没有关于超时的信息.
我正在运行Windows 10的开发环境并使用JavaScript客户端.
编辑:启用客户端日志记录后插入图像.
编辑2:链接到page,包含有关旧SignalR版本的超时.
解决方法:
对于将来可能来到这里的人:
You can find the solution here.
But also take a look at this link and then read my comments.
如果signalR断开连接,您应该再次尝试重新建立连接.由于其他几个原因,连接可能会丢失,包括用户切换网络.例如,如果用户正在使用手机并连接到家庭/办公室wifi,但步出然后连接到蜂窝数据连接.
要重新连接,您可以使用以下内容(对我来说就像一个魅力):
// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));
其中startSignalRConnection是:
const startSignalRConnection = connection => connection.start()
.then(() => console.info('Websocket Connection Established'))
.catch(err => console.error('SignalR Connection Error: ', err));
和连接是
const connection = new HubConnectionBuilder()
.withUrl(connectionHub, options)
.withHubProtocol(protocol)
.build();