2013-06-07 11 views
13

SignalR ist eine Abstraktion über Transporte, die für Echtzeitverbindungen verwendet werden. Dennoch würde ich gerne wissen, wie genau es entscheidet, welche Transportmethoden verwendet werden sollen, abhängig von verschiedenen Faktoren. Ich recherchierte unter Verwendung der verfügbaren Dokumentation und schaute in Quellen und kam auf eine Idee, wie es funktioniert.Wie entscheidet SignalR, welche Transportmethode verwendet werden soll?

Also meine eigentliche Frage wäre, ist das folgende Flussdiagramm korrekt oder fehle ich irgendetwas?

Flowchart of SignalR's assumed transport negotiating

aktualisieren:

Vielen Dank für Ihre Eingabe! Hier ist eine aktualisierte Version entsprechend Ihrer Korrekturen. Aber ich bin mir immer noch nicht sicher: Wenn es keine explizite Überprüfung gibt, ob IE9 + verwendet wird, was löst den Fallback von ForeverFrame zu LP aus, wenn es nicht IE ist und SSE nicht unterstützt?

enter image description here

+1

Um Ihre Bearbeitung zu bearbeiten: Wir erwarten, dass Anwendungsfälle wie diese fehlschlagen, aka die Verbindung wird nicht ordnungsgemäß gestartet und daher wird es Fallback Longpolling –

+0

Aus der Dokumentation: http://www.asp.net/signalr/overview/getting -gestartete/Einführung-zu-Signal # Transporte – Nogwater

Antwort

7

Ehrfürchtig Diagramm zuerst ab.

Es ist sehr nah! Hier einige Korrekturen:

Configured JSONP 
Yes -> Use LP 
No -> IsCrossDomain 
     Yes -> CORS Support? 
       No -> JSONP = true 
        -> Use LP 
       Yes -> Server Supports WebSockets 
        Yes -> Client Supports WebSockets 
          Yes -> Use WebSockets 
          No -> Use LP 
        No -> Use LP 
       No -> Use LP 

Ein anderes leichtes Detail: ForeverFrame wird immer versucht, vor SSE (auch in Chrome), aber innerhalb des Transports selbst überprüft er, ob Eventsource (die zugrunde liegende Methode der SSE) vorhanden ist, wenn es vorhanden ist dann der Für immer startet der Rahmen nicht (so dass er auf SSE zurückfallen kann). Daher ist IE9 + niemals eine direkte Überprüfung.

Mit meinen Fixes würde Ihr Diagramm dann genau sein.

Verwandte Themen