8 c# signalr asp.net-core-2.0 asp.net-core-signalr
我正在尝试在ASP.NET Core 2.1上使用最新的SignalR。我有基本的应用程序正在运行,但现在很快就会超时。我看到这个错误-
错误:连接已断开,错误为“错误:服务器超时,但未收到来自服务器的消息。”。
在哪里可以更改此超时设置?我在这里尝试了文档,但是那里没有超时的信息。我正在Windows 10的开发环境中运行并使用JavaScript客户端。
编辑:启用客户端日志记录后插入图像。
编辑2:链接到包含有关旧SignalR版本超时的页面。
对于将来可能会来到这里的人:
这是增加Javascript客户端超时的方法
hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second
Run Code Online (Sandbox Code Playgroud)
但也请查看此链接,然后在下面阅读我的评论:
如果signalR断开连接,则应尝试重新建立连接。连接可能由于其他一些原因而断开,包括用户交换网络。例如,如果用户正在使用手机并连接到家庭/办公室wifi,但先退出,然后再连接到蜂窝数据连接。
要重新连接,您可以使用以下命令(对我来说就像是一件吊饰):
// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));
Run Code Online (Sandbox Code Playgroud)
在哪里startSignalRConnection:
const startSignalRConnection = connection => connection.start()
.then(() => console.info('Websocket Connection Established'))
.catch(err => console.error('SignalR Connection Error: ', err));
Run Code Online (Sandbox Code Playgroud)
和连接是
const connection = new HubConnectionBuilder()
.withUrl(connectionHub, options)
.withHubProtocol(protocol)
.build();
Run Code Online (Sandbox Code Playgroud)
小智 6
在启动.cs中
services.AddSignalR(hubOptions =>
{
hubOptions.EnableDetailedErrors = true;
hubOptions.KeepAliveInterval = TimeSpan.FromMinutes(60);
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3633 次 |
| 最近记录: |