2015-12-22 15 views
6

मैं लिनक्स पर सी ++ का उपयोग कर वेबस्केट एपीआई एक्सेस करना चाहता हूं। मैंने विभिन्न पुस्तकालयों को देखा है (जैसे libwebsockets या websocketpp), लेकिन मुझे यकीन नहीं है कि मुझे किस का उपयोग करना चाहिए। मुझे केवल एक चीज है जो एपीआई से कनेक्ट है और एक स्ट्रिंग में डेटा प्राप्त करें। तो मैं बहुत मूल और सरल समाधान की तलाश में हूं, कुछ भी जटिल नहीं है। हो सकता है कि किसी ने पहले ही वेबस्केट लाइब्रेरी के साथ अनुभव किया हो?वेबसॉकेट लाइब्रेरी

उत्तर

9

एक उच्च स्तरीय एपीआई के लिए, आप cpprest लाइब्रेरी से उपयोग कर सकते हैं {यह websocketpp} लपेटता है। कि echo server के खिलाफ चलाता

एक नमूना आवेदन:

#include <iostream> 
#include <cpprest/ws_client.h> 

using namespace std; 
using namespace web; 
using namespace web::websockets::client; 

int main() { 
    websocket_client client; 
    client.connect("ws://echo.websocket.org").wait(); 

    websocket_outgoing_message out_msg; 
    out_msg.set_utf8_message("test"); 
    client.send(out_msg).wait(); 

    client.receive().then([](websocket_incoming_message in_msg) { 
    return in_msg.extract_string(); 
    }).then([](string body) { 
    cout << body << endl; // test 
    }).wait(); 

    client.close().wait(); 

    return 0; 
} 

यहाँ .wait() विधि कार्यों पर प्रतीक्षा करने के लिए प्रयोग किया जाता है, हालांकि कोड आसानी से मैं अतुल्यकालिक रास्ते में हे ऐसा करने के लिए/संशोधित किया जा सकता।

+0

धन्यवाद! क्या यह किसी चैनल को सदस्यता लेने का भी समर्थन करता है? – Bobface

+0

और यह भी, ** उनके पृष्ठ पर माइक्रोसॉफ्ट प्रोजेक्ट ** कहता है। तो यह शायद लिनक्स सिस्टम पर काम नहीं करेगा? – Bobface

+2

यह बहुत ठोस है और विंडोज़, ओएस एक्स, आईओएस, और ** लिनक्स (एंड्रॉइड समेत) ** पर चलता है। वास्तव में, मैंने इस नमूना को उबंटू 15.10 पर कोड किया और चलाया। –

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