2016-07-07 12 views
5

पर अज्ञात तर्क पारित किए गए तर्क मैं डिफ्यूजन जेएस एपीआई के लिए कुछ कोड उदाहरणों के माध्यम से काम कर रहा हूं लेकिन मुझे पुन: कनेक्शन पर उदाहरण नहीं समझ रहा है। ReconnectionStrategy के start और abort पैरामीटर क्या हैं?जेएस क्लाइंट reconnectionStrategy

// Create a reconnection strategy that applies an exponential back-off 
var reconnectionStrategy = (function() { 
    return function(start, abort) { 
     var wait = Math.min(Math.pow(2, attempts++) * 100, maximumAttemptInterval); 

     // Wait and then try to start the reconnection attempt 
     setTimeout(start, wait); 
    }; 
})(); 

// Connect to the server. 
diffusion.connect({ 
    host : 'diffusion.example.com', 
    port : 443, 
    secure : true, 
    principal : 'control', 
    credentials : 'password', 
    reconnect : { 
     timeout : maximumTimeoutDuration, 
     strategy : reconnectionStrategy 
    } 
}).then(function(session) { 

से https://github.com/pushtechnology/diffusion-examples/blob/master/js/examples/reconnect.js

+0

जिस तरह से आप वापस लौटाए गए फ़ंक्शन के बराबर पुन: कनेक्शन कर सकते हैं। इसमें पहले अपने स्थानीय चर शामिल हो सकते हैं जो बताएंगे कि यह वही तरीका क्यों है। –

उत्तर

5

उन दो तर्क reconnect और abortin the manual रूप में वर्णित हैं लिया, दोनों कार्यों कि उपयोग करने के लिए रखा जा सकता है कर रहे हैं।

  • start/reconnect - एक पुनः कनेक्ट करने का प्रयास आरंभ हो जाएगा। किसी अन्य कनेक्शन का प्रयास करने के लिए ग्राहक को निर्देश देता है।

  • abort - पुन: कनेक्शन रद्द करने के लिए कहा जा सकता है, जिस स्थिति में ग्राहक बंद हो जाएगा। अगर आपको लगता है कि आगे के प्रयास निष्फल होंगे या अन्यथा अवांछित होंगे तो इसे कॉल करें।

इस समझ हम देखते हैं कि उदाहरण के प्रयास करता है प्रतीक्षा करता है के बीच पुनर्संयोजन कि तेजी से (100ms, 200 मि.से, 400 मि.से, आदि) 60 के दशक की एक अधिकतम करने के बढ़ जाती है के साथ

। यदि पुन: कनेक्शन प्रयास विफल रहता है तो पुन: कनेक्शन रणनीति फ़ंक्शन को फिर से कॉल किया जाता है।

4

समारोह भी लपेटा जा करने के लिए की जरूरत नहीं है:

var reconnectionStrategy = function(start, abort) { 
    var wait = Math.min(Math.pow(2, attempts++) * 100, maximumAttemptInterval); 

    // Wait and then try to start the reconnection attempt 
    setTimeout(start, wait);}; 

बस के रूप में अच्छी तरह से करते हैं और कम भ्रामक होगा।

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