SignalRとAsp.netMVCを使用してチャットアプリケーションを作成しました。ユーザーがしばらくアイドル状態の場合、サーバーからメッセージを受信していません。
SignalR持続的接続のタイムアウトはありますか?
はいの場合、接続を変更または再アクティブ化するにはどうすればよいですか?
SignalRとAsp.netMVCを使用してチャットアプリケーションを作成しました。ユーザーがしばらくアイドル状態の場合、サーバーからメッセージを受信していません。
SignalR持続的接続のタイムアウトはありますか?
はいの場合、接続を変更または再アクティブ化するにはどうすればよいですか?
これは Wiki で更新されましたhttps://github.com/SignalR/SignalR/wiki/Configuring-SignalR
コード
using System;
using SignalR;
namespace WebApplication1
{
public class Global : System.Web.HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// Make connections wait 50s maximum for any response. After
// 50s are up, trigger a timeout command and make the client reconnect.
GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(50);
}
}
}
SignalR の既定のタイムアウトは、どの接続でも 110 秒です。自動的に再接続され、メッセージを見逃すことはありません。それはあなたが何か他の問題を抱えているように聞こえます。このように 0.4 でタイムアウトを微調整したい場合 (asp.net を想定):
// Make idle connections reconnect every 60 seconds
AspNetHost.DependencyResolver.Resolve<IConfigurtionManager>().ReconnectTimeout = TimeSpan.FromSeconds(60);
You add using SignalR.Infrastructure to get the Resolve extension method (次のバージョンで修正されます)。