2013-06-07 6 views
13

सिग्नलआर रीयल-टाइम कनेक्शन के लिए उपयोग किए जाने वाले ट्रांसपोर्ट पर एक अमूर्त है। फिर भी मैं जानना चाहता हूं कि यह कैसे तय करता है कि विभिन्न कारकों के आधार पर कौन सा परिवहन विधियों का उपयोग किया जाना चाहिए। मैंने उपलब्ध दस्तावेज का उपयोग करके कुछ शोध किया और स्रोतों में देखा और यह एक विचार के साथ आया कि यह कैसे काम करता है।सिग्नलआर कैसे तय करता है कि कौन सी परिवहन विधि का उपयोग किया जाए?

तो मेरा वास्तविक प्रश्न निम्न फ्लोचार्ट सही होगा या क्या मुझे कुछ याद आ रहा है?

Flowchart of SignalR's assumed transport negotiating

अद्यतन:

आपके इनपुट के लिए धन्यवाद! यहां आपके फ़िक्सेस के अनुसार एक अद्यतन संस्करण है। लेकिन मुझे अभी भी एक बात के बारे में निश्चित नहीं है: यदि कोई स्पष्ट जांच नहीं है कि IE9 + का उपयोग किया जाता है, तो क्या ForeverFrame से LP तक फ़ॉलबैक ट्रिगर करता है यदि यह IE नहीं है और एसएसई का समर्थन नहीं करता है? पहले बंद

enter image description here

+1

आपके संपादन को संबोधित करने के लिए: हम उम्मीद करते हैं कि इस तरह के मामलों को असफल होने की उम्मीद है, उर्फ ​​कनेक्शन ठीक से शुरू नहीं होगा और इसलिए यह लंबे समय तक –

+0

डॉक्स से: http://www.asp.net/signalr/overview/getting पर गिर जाएगा -started/परिचय करने वाली signalr # परिवहन – Nogwater

उत्तर

7

बहुत बढ़िया चित्र।

यह बहुत करीब है! यहाँ कुछ फिक्स है:

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 

एक अन्य मामूली विस्तार: ForeverFrame हमेशा SSE (क्रोम में भी) से पहले की कोशिश की है, लेकिन परिवहन के भीतर ही यह जाँच करता है, तो EventSource (SSE की अंतर्निहित विधि) मौजूद है, अगर यह तो मौजूद है हमेशा के लिए फ्रेम शुरू करने में विफल रहता है (ताकि यह एसएसई पर वापस आ सकता है)। इसलिए IE9 + कभी प्रत्यक्ष जांच नहीं है।

मेरे फ़िक्स लागू करने के साथ आपका चित्र सटीक होगा।

संबंधित मुद्दे

 संबंधित मुद्दे