2012-06-20 8 views
5

के बिना मैं Betfair API के साथ इंटरफेस करने के लिए एक बहुप्रचारित C ​​++ (Linux) SOAP क्लाइंट लिख रहा हूं। मैंने शुरुआत में जीएसओएपी के साथ पकड़ने की कोशिश की लेकिन मैं इसे कई डब्लूएसडीएल फाइलों का उपयोग करके ठीक से काम नहीं कर पा रहा हूं ताकि मैंने अस्थायी रूप से इसे छोड़ दिया हो। मैंने रैपिडएक्सएमएल का उपयोग करके डेटा संग्रहित करने और एक्सएमएल बनाने के लिए अपनी कक्षाएं लागू की हैं - एकमात्र चीज जिसे मैं सलाह ढूंढ रहा हूं वह है कि एचटीटीपीएस परिवहन पहलू के लिए क्या उपयोग करना है। मैंने ओपनएसएसएल और libcurl का उपयोग कर कुछ प्रारंभिक परीक्षण अनुप्रयोगों को लागू किया है, ये ठीक काम करते हैं लेकिन मुझे बहुप्रचारित पहलुओं के साथ कुछ समस्याएं हैं और वे सी ++ से अधिक सी हैं, और ईमानदार होने के लिए मैं कुछ और अधिक अद्यतित खोज रहा था। तो मेरा सवाल यह है - अगर मैं इसे स्क्रैच से फिर से लिखना चाहता था, तो HTTPS परिवहन से निपटने के लिए उपयोग करने का सबसे अच्छा टूल क्या होगा। मैं संभावनाओंएक सी ++ एसओएपी (बहुप्रचारित) क्लाइंट एप्लिकेशन लिखना - जीएसओएपी

  1. OpenSSL (कार्यान्वित)
  2. libcurl (कार्यान्वित)
  3. बढ़ावा :: asio पुस्तकालय (करने की कोशिश की नहीं है, क्योंकि अभी तक मैं बूस्ट के साथ हाथ आजमाया नहीं किया है)
  4. करने की कोशिश करो के रूप में निम्नलिखित शोध किया है सॉकेट प्रोग्रामिंग (इस दृष्टिकोण पर उत्सुक नहीं) का उपयोग करके यह सब मेरे पास करें
  5. बस जीएसओएपी को आजमाएं और कठिन बनाएं और इसे काम करने के तरीकों के लिए वेब को घुमाएं।
  6. कुछ अलग है कि मैं अभी तक नहीं आया है।

तो मूल रूप से, ऊपर दिया गया है कि कोई ठोस प्रदर्शन और न्यूनतम बहुभाषी समस्याओं के संदर्भ में उपयोग करने के लिए सबसे अच्छा तरीका के रूप में क्या सलाह देगा? या किसी को भी उपर्युक्त में से किसी के खराब प्रदर्शन के साथ कोई अनुभव है और मुझे इसका उपयोग करने से रोक देगा ??? कोई सुझाव और सलाह आभारी रूप से प्राप्त की जाएगी।

उत्तर

3

यदि आप प्रदर्शन के बारे में चिंतित हैं, तो मेरे अनुभव में वृद्धि :: एएसओ विशेष रूप से बड़ी बहुप्रचारित परियोजनाओं में बहुत अच्छी तरह से स्केल करता है। नोटिस हालांकि कि बढ़ावा :: एएसओ एक बहुत कम स्तर की सॉकेट उन्मुख पुस्तकालय है, इसलिए आपको उसमें बहुत गहरी खुदाई करनी होगी; बूस्ट :: एएसओओ के साथ एचटीटीपीएस के लिए कुछ अच्छे उदाहरण हैं, उदा। this। मैं आपके डू-इट-सॉकेट विचार को अस्वीकार कर दूंगा, क्योंकि यह केवल बूस्ट :: एएसओ ऑफ़र है।

मैंने व्यक्तिगत रूप से अभी तक libcurl के साथ काम नहीं किया है, लेकिन ओपनएसएसएल काफी उच्च स्तरीय एपीआई प्रदान करता है जिसमें आपको जो भी चाहिए उसे कवर करना चाहिए; हालांकि आप प्रदर्शन की कीमत पर सुविधा खरीद लेंगे। ज्यादातर मामलों में, प्रदर्शन की कमी मामूली और इस प्रकार उपेक्षित होगी, लेकिन यह आपके आवेदन पर निर्भर करती है।

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

निष्कर्ष में, यदि आप प्रदर्शन को अधिकतम करना चाहते हैं और सॉकेट के साथ सहज महसूस करना चाहते हैं, और ओपनएसएसएल सुविधा और तेज़ विकास की उच्च प्राथमिकता है तो मैं बूस्ट :: एएसओ का उपयोग करूंगा।

+0

इसके लिए धन्यवाद।मुझे आपके उत्तर की तरह लगता है लेकिन स्वीकार करने से पहले मैं इंतजार करूंगा और देखूंगा कि मुझे और जवाब मिलते हैं या नहीं। मुझे खुशी है कि आप भी सोचते हैं कि जीएसओएपी डूबने लायक है क्योंकि मैंने सचमुच इसे कॉन्फ़िगर करने की कोशिश कर रहे घंटे बर्बाद कर दिए हैं। – mathematician1975

2

मैंने Poco लाइब्रेरी का उपयोग करके अपना खुद का क्लाइंट लिखा है। इसमें इस उद्देश्य के लिए आवश्यक सब कुछ शामिल है।

  • एक्सएमएल पार्सर्स (डोम और एसएक्स एपीआई समर्थित हैं);
  • HTTP और HTTPS क्लाइंट।
+0

क्या यह स्वतंत्र रूप से उपलब्ध है या आप इसे खरीदना चाहिए? – mathematician1975

+0

पोको लाइब्रेरी के तीन संस्करण हैं। मूल संस्करण और पूर्ण संस्करण [बूस्ट सॉफ्टवेयर लाइसेंस] (http://pocoproject.org/license.html) के तहत जारी किया गया है। –

+0

मैं पूर्ण संस्करण का उपयोग करता हूं। –

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