SignalR long-polling transport

Ich bin mit SignalR 0.5.3 mit Naben-und ich bin ausdrücklich die Einstellung transport zu lange Abfragen wie diese:

$.connection.hub.start({ transport: 'longPolling' }, function () {
    console.log('connected');
});

mit Konfiguration wie folgt aus (in global.asax.cs Application_Start-Methode):

GlobalHost.DependencyResolver.UseRedis(server, port, password, pubsubDB, "FooBar");
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(2);
GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(15);

Aber die long polling scheint nicht zu funktionieren, weder auf die Entwicklung (IIS express), noch auf die Produktion (IIS 7.5) - Umgebung. Verbindung scheint korrekt, aber die long poll-Anfrage ist immer timed out (nach ~2 Minuten) und wieder danach geschieht. Logs von IIS sind hier. Antwort von der ersten Zeitüberschreitung der Anfrage:

{"MessageId":"3636","Messages":[],"Disconnect":false,"TimedOut":true,"TransportData":{"Groups":["NotificationHub.56DDB6692001Ex"],"LongPollDelay":0}}

Timeout reconnect Antworten sieht wie folgt aus:

{"MessageId":"3641","Messages":[],"Disconnect":false,"TimedOut":true,"TransportData":{"Groups":["NotificationHub.56DDB6692001Ex"],"LongPollDelay":0}}

Ich würde schätzen jede Hilfe bei diesem Thema. Danke.

Bearbeiten

Wenn reconnect bedeutet den Beginn einer neuen long poll-Zyklus, warum es eingeleitet wird, nach ~2 Minuten, wenn die KeepAlive-Einstellung global.asax.cs ist auf 15 Sekunden gesetzt? Problem mit diesem ist, dass ich einen reverse-proxy vor IIS, die timeouts keep-alive-requests nach 25 Sekunden, also ich bekomme 504 Reaktion, wenn diese reverse-proxy-timeout erreicht ist.

Ich bin mir nicht sicher, was das problem ist, das du da beschreibst. Der timeout passiert, wenn Sie nicht erhalten Antwort und ist völlig beabsichtigt. Was ist das Problem?
Also der reconnect bedeutet den Beginn einer neuen long poll-Zyklus? Warum ist es eine Zeitüberschreitung, nach ~2 Minuten wenn ich den KeepAlive-Einstellung 15 Sekunden? Siehe aktualisierte Frage.
Keep alive funktioniert nicht für longpolling (es ist ja nicht sinnvoll). LongPolling wartet standardmäßig für 2 Minuten und Sie können Sie erweitern, dass, was funktioniert in Ihrer Umgebung. Ich bin mir immer noch nicht das problem zu verstehen. Sie sind nur zu Fragen, wie es funktioniert?
Wenn Sie müssen, ändern Sie den timeout-Intervall auf etwas unter 25 Sekunden, dann legen Sie das timeout.
Die timeout-meinst du ich brauche, um? ConnectionTimeout in signalr-Konfiguration?

InformationsquelleAutor yojimbo87 | 2012-10-20

Schreibe einen Kommentar