2012-04-12 10 views
4

Ich habe Chat-Anwendung mit SignalR und Asp.net MVC erstellt. Wenn der Benutzer für einige Zeit inaktiv ist, hat er keine Nachrichten vom Server erhalten.Wie lang ist die SignalR-Persistenzverbindung?

Gibt es eine Zeitüberschreitung für die SignalR-Persistenzverbindung?

Wenn ja, wie kann ich meine Verbindung ändern oder reaktivieren?

Antwort

6

Das Standard-Timeout von SignalR beträgt 110 Sekunden für jede Verbindung. Es wird automatisch wieder verbunden und Sie sollten keine Nachrichten verpassen. Das klingt, als hättest du ein anderes Problem.

// Make idle connections reconnect every 60 seconds 
AspNetHost.DependencyResolver.Resolve<IConfigurtionManager>().ReconnectTimeout = TimeSpan.FromSeconds(60); 

Stellen Sie sicher, Sie fügen mit SignalR.Infrastructure erhalten die Resolve-Extension-Methode (wir dies in der nächsten sind Festsetzung: Wenn Sie den Timeout in 0,4 wie diese (vorausgesetzt, asp.net) optimieren wollen Ausführung).

+0

Wo finde ich IConfigurationManager Schnittstelle finden? –

+0

SignalR.Konfiguration. Nur um klar zu sein, wird dies nicht helfen, Ihre fehlenden Nachrichten Problem. Ich bin mir nicht 100% sicher, was Sie zu lösen versuchen. – davidfowl

+0

Wenn das nicht hilft, was sind die Vor- und Nachteile von kürzeren oder längeren Timeouts? Würde das Aktivieren von Alive-Hilfe ermöglichen? – regularmike

9

Dies wurde nun auf dem https://github.com/SignalR/SignalR/wiki/Configuring-SignalR Wiki worden

-Code upated

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); 
     } 
    } 
} 
Verwandte Themen