2.8 बाजार डेटा अद्यतन मोड को स्विच करें (विवरण)

लेखक:छोटे सपने, बनाया गयाः 2016-07-13 10:08:50, अद्यतन किया गयाः 2017-10-11 10:21:29

बाजार डेटा अद्यतन मोड पर स्विच करें

  • यहां एपीआई दस्तावेज़ में एक परिचय दिया गया हैः
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • उपयोगकर्ता को समझने में आसानी के लिए, नीचे विस्तार से बताया गया हैः

    • 1, प्लेटफ़ॉर्म सिस्टम डिफ़ॉल्ट रूप से रेस्ट मोड में है: रेस्ट मोड में एक एपीआई डेटा अनुरोध, एक्सचेंज सर्वर एक डेटा (वर्तमान अद्यतन) वापस करता है, एक्सचेंज सर्वर सक्रिय रूप से उपयोगकर्ताओं को नवीनतम डेटा नहीं भेजता है। इसलिए, एक रणनीति के रूप में, जब आप आराम मोड का उपयोग करते हैं, तो आपको अक्सर डेटा अनुरोध करने की आवश्यकता होती है ताकि आप नवीनतम डेटा को समय पर प्राप्त कर सकें।

    • 2. वेबसॉकेट मोड समर्थित एपीआई में GetTicker, GetDepth शामिल हैं।exchanges[0].IO("websocket");फ़ंक्शन के बाद, वेबसॉकेट मोड खोलें। ध्यान देने वाले छात्र देख सकते हैं कि एक्सचेंज [0] इस तरह क्यों लिखा गया है। नीचे दिए गए चित्र देखें।imgउदाहरण के लिए, एक नीति में दो एक्सचेंजों को जोड़ा जाता है (और कई हो सकते हैं) और प्लेटफ़ॉर्म द्वारा परिभाषित वैश्विक वस्तुओं में से एक में से एक सरणी है, जो नीति में जोड़े गए सभी एक्सचेंजों का प्रतिनिधित्व करती है, यह सरणी एक्सचेंजों की है। एक्सचेंज ऑब्जेक्ट्स सरणी, मुख्य एक्सचेंज ऑब्जेक्ट, सरणी का पहला तत्व है (सूचकांक 0): एक्सचेंजों[0] टोकन एक्सचेंज ऑब्जेक्ट्स; दूसरा एक्सचेंज ऑब्जेक्टः एक्सचेंजों[1] ओकेसीओन एक्सचेंज ऑब्जेक्ट्स↑ एक्सचेंज एक्सचेंजों[0]; वेबसॉकेट का समर्थन करने वाले लेनदेन सभी टोकन, ओकेसीओन नकदी, बीटीसीसी हैं। सीटीपी कमोडिटी वायदा सीटीपी प्रोटोकॉल है, जो वेबसॉकेट की तरह है, जिसका उपयोग करने के लिए कोई स्विच की आवश्यकता नहीं है।

    • 3. वेबसॉकेट मोड से अंतरः वेबसॉकेट मोड में, प्रबंधक एक्सचेंज सर्वर को सदस्यता अनुरोध भेजता है, और एक्सचेंज सर्वर इसे प्राप्त करने के बाद; जब भी कोई नया डेटा होता है, तो इसे प्रबंधक को सक्रिय रूप से धकेल दिया जाता है। प्रबंधक इस डेटा को कैश करता है, जब रणनीति रोबोट डेटा का अनुरोध करता है, तो यह जल्दी से प्राप्त होता है, और डेटा नवीनतम होता है। (क्योंकि एक्सचेंज सर्वर नए डेटा अपडेट होने पर सक्रिय रूप से धकेल देता है)

    • 4. वेबसॉकेट मोड चालू होने के बाद, तीन कार्य मोड सेट किए जा सकते हैंः

      • <1> exchange.IO("mode",0);//इंस्टेंट रिटर्न मोडः यह मोड तुरंत वर्तमान डेटा ((वर्तमान नवीनतम) को वापस करता है।

      • <2> exchange.IO("mode", 1);//कैश मोड ((डिफ़ॉल्ट मोड): यह मोड दो प्रसंस्करण शाखाओं को विभाजित करता है। पहला, जब एपीआई डेटा का अनुरोध करता है, तो अनुरोधित एपीआई प्राप्त करने के लिए प्रतीक्षा करता है, यदि वर्तमान कैश किए गए डेटा का पिछले एपीआई प्राप्त किए गए डेटा के साथ कोई तुलना नहीं है। दूसरा, जब एपीआई डेटा का अनुरोध करता है, तो यह तुरंत नवीनतम डेटा लौटाता है यदि वर्तमान में कैश किए गए डेटा की तुलना पिछली बार एपीआई प्राप्त किए गए डेटा से की जाती है (यानी एपीआई अनुरोध डेटा को कॉल करने से पहले नवीनतम लेनदेन डेटा प्राप्त किया गया था) ।

      • <3> exchange.IO("mode", 2);// जबरन अद्यतन मोडः यह मोड कैश मोड के एक तार्किक शाखा के साथ भ्रमित हो सकता है, लेकिन यह समझ में आता है। कैशिंग मोड में कैश किए गए डेटा के बारे में निर्णय लिया जाता है कि क्या यह नवीनतम है; जबकि जबरन अद्यतन मोड में, चाहे वर्तमान बाजार नवीनतम हो या नहीं, अगले नवीनतम बाजार डेटा के लिए इंतजार करना अनिवार्य है।


अधिक

होक्सहेलाटो` `js function main (() { exchange.IO (("वेबसॉकेट"); while (true) { लॉग ((exchange.GetTicker)))); } } `` 1. पुनः परीक्षण करने में असमर्थ, त्रुटि रिपोर्ट `main:2:12 - ReferenceError: setLastError is not defined `, यह अनुमान लगाया गया है क्योंकि पुनः परीक्षण प्रणाली असिंक्रोनस पुशिंग डेटा का समर्थन नहीं करती है. 2. एनालॉग डिस्क त्रुटि रिपोर्ट करता है, `Futures_OP 4: अवधि समर्थन नहीं `, और फिर केवल एक टिकर डेटा प्राप्त कर सकता है, और रोबोट सामान्य रूप से बंद नहीं हो सकता है, हमेशा टैंक को बंद करने के लिए टैंक को रोकता है, जिसे मैन्युअल रूप से मारने की आवश्यकता होती है।

फंगबेईकैश में कितने डेटा हैं? कब तक कैश किया जाएगा?

होक्सहेलाटोमैं समझ गया, धन्यवाद!

छोटे सपने1, पुनरीक्षण में कोई rest नहीं, वेबसॉकेट का हिस्सा... 2, एनालॉग डिस्क में वेबसॉकेट मोड नहीं है । दस्तावेज़ीकरण केवल ओकेएक्स कॉइन प्रो वेबसॉकेट प्रोटोकॉल का समर्थन करता है।

छोटे सपनेइस लेख में, हम आपको कुछ ऐसे विषयों के बारे में बताएंगे जो हम अपने ब्लॉग के माध्यम से देख सकते हैं।