2017-08-09 1 views
0

Ich benutze SignalR - Transportart longPolling. Ich kann sehen, dass die Funktionalität wie erwartet funktioniert. In Echtzeit konnte ich feststellen, dass es ziemlich viele SignalR-Aufrufe gibt, die die Leistung stark beeinträchtigen.Signaler Calls sind ziemlich groß mit longPolling Transportart - Performance Impact

Es scheint, basierend auf meiner Analyse LongPolling schafft Verbindung und verwenden Sie es und schließen Sie es. Dann wird die Verbindung bei Bedarf neu erstellt. Ich denke, das könnte die Ursache dafür sein, viele SignalR-Anrufe zu einem bestimmten Zeitpunkt zu sehen.

Könnten Sie bitte Ihre Gedanken dazu teilen, um eine große Anzahl von SignalR-Aufrufen zu lösen/vermeiden?

Wenn ich versucht habe, foreverFrame als Transporttyp zu verwenden, wird die SignalR-Verbindung nicht aktiviert. Ich konnte den folgenden Fehler in der Konsole sehen.

SignalR: Fehler beim Verbinden unter Verwendung der Frame-Quelle für immer, es endete nach 3000s SignalR: Stoppen für immer Frame SignalR: Kein Transport konnte erfolgreich initialisiert werden. Versuchen Sie, für die automatische Initialisierung einen anderen Transport oder gar keinen anzugeben. Problem beim Starten des Signalr-Hubs.

Antwort

0

Dies scheint das Standardverhalten für lange Abfragen basierend auf den Dokumenten zu sein - Lange Abfrage erstellt keine dauerhafte Verbindung, sondern fragt den Server mit einer Anforderung ab, die geöffnet bleibt, bis der Server antwortet. An diesem Punkt wird die Verbindung geschlossen. und eine neue Verbindung wird sofort angefordert. Dies kann zu einer gewissen Latenz führen, während die Verbindung zurückgesetzt wird.

Ihre Verwendung von foreverFrame funktioniert möglicherweise nicht, da der Transport in dem von Ihnen verwendeten Browser nicht verfügbar ist.

Ich muss noch verstehen, warum jemand den Transport zu einem bestimmten zwingen würde. Möglicherweise bin ich gerade nicht in das Szenario geraten, in dem es erforderlich ist.

SignalR wird den Aspekt der Bestimmung des zu verwendenden Transports mit jedem Client behandeln, was einen seiner großen Vorteile darstellt.

+0

Vielen Dank für Ihre Eingabe. Gibt es eine Möglichkeit, diese Polling-Anrufe von signalr/poll zu vermeiden? Transport = longPolling ....? – SNithish

+0

Danke für Ihre Eingabe. Gibt es eine Möglichkeit, diese Polling-Anrufe von signalr/poll zu vermeiden? Transport = longPolling ....? , damit mein Server diese vielen Anfragen nicht beantwortet. Sie meinen, wir müssen Transportart nicht explizit erwähnen, indem Sie das folgende Snippet $ .connection.hub.start ({transport: "longPolling"}) verwenden? OR $ .connection.hub.start ({Transport: „foreverFrame“}) , wenn wir wollen, dass die signalR den Transporttyp durch seine eigene bestimmen, dann tun wir die obige Einstellung entfernen müssen/brauchen wir als auto oder none gesetzt? Könntest du bitte deine Gedanken teilen? – SNithish

+0

jede der neuesten Version der SignalR-Version würde helfen, eine Menge von Signal zu vermeiden R/Poll? Transport = Longpolling .... Anruf trifft den Server für alle 2 min-Intervall? Ich benutze derzeit SignalR1.1.2 Version. – SNithish