c# – 如何在ASP.NET Core SignalR v2.1中增加超时设置?

我正在尝试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客户端.

编辑:启用客户端日志记录后插入图像.

c# – 如何在ASP.NET Core SignalR v2.1中增加超时设置?

编辑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();
上一篇:SignalR学习


下一篇:c# – 如何使用ASP.NET Hosting在Nancy中使用SignalR将服务器与客户端进行通信?