我正在使用自托管SignalR 2.2.0服务器并使用OWIN进行配置。
[assembly: OwinStartup(typeof(Server.Communication.StartUp))]
namespace Server.Communication
{
public class StartUp
{
public void Configuration(IAppBuilder app)
{
app.Map("/Communication", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration { EnableDetailedErrors = true};
map.RunSignalR(hubConfiguration);
});
}
}
}
我通过
启动服务器WebApp.Start($"http://{ip}:{port}");
在我的Hub
中,我已经覆盖了方法
public override Task OnDisconnected(bool stopCalled)
如果我通过Windows任务资源管理器让我的客户端崩溃来模拟崩溃,那么一切正常并调用OnDisconnected
方法。但是OnDisconnected
方法被称为有点迟了。调用该方法至少需要30秒。我想将这个时间设置为10秒。
我在调用KeepAlive
方法之前尝试设置ConnectionTimeout
和WebApp.Start
,但它没有改变任何内容。
GlobalHost.Configuration.ConnectionTimeout = new TimeSpan(0, 0, 10);
GlobalHost.Configuration.KeepAlive = new TimeSpan(0, 0, 2);