2012-03-02 2 views
12

में वेबसाइटसेट क्लाइंट मुझे C++ का उपयोग करके एक वेबस्केट क्लाइंट को कार्यान्वित करने की आवश्यकता है। मैंने रूबी का उपयोग कर पहले से ही एक मूल वेबसाइकिल सर्वर बनाया है। लेकिन अब मैं सी/सी ++ का उपयोग कर कनेक्शन का परीक्षण करना चाहता हूं। सी/सी ++ में websockets लागू करने के लिए उपलब्ध पुस्तकालयों का उपयोग करने के लिए कोई आसान है?सी ++

अग्रिम धन्यवाद।

+9

अरे, जब लोग _C/C++ _ लिखते हैं, तो मुझे इससे नफरत है, अपना मन बनाओ, क्या आप _C_ या _C++ _ का उपयोग कर रहे हैं? ** ** एक ही भाषा नहीं है **। – ApprenticeHacker

+0

मैं आपसे सहमत हूं .. लेकिन ग्राहक सी या सी ++ में डेमो से पूछ रहा है। उसके लिए खेद है। :-) – hbdev012

+0

कोई समस्या नहीं है। जबरदस्त हंसी। – ApprenticeHacker

उत्तर

4

बूस्ट :: एएसओ और पोको.Net और शायद कुछ अन्य हैं, लेकिन सी-एपीआई बर्कले सॉकेट इतना कठिन नहीं हैं, इसलिए यदि आप उन पुस्तकालयों का उपयोग नहीं करना चाहते हैं तो उन्हें देखें।

संपादित करें: क्षमा करें, शायद आपको "websockets" के साथ गलत हो गया है। क्या तुमने यहाँ देखा? http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations (Simple C++ WebSocket Client (draft 08+ compatible)? से लिया गया)

+0

वर्तमान में इसे देख रहे हैं। और मैंने अपने कार्यान्वयन के लिए websocket ++ उपयोगी पाया। मुझे उम्मीद है कि यह काम करेगा। धन्यवाद :-) – hbdev012

+0

+1 वेबस्केट ++ के साथ जाने के लिए +1: यह spec (अंतिम आरएफसी 6455) और उच्च प्रदर्शन के लिए बहुत अनुरूप है। और एएसआईओ आधारित। – oberstet

+0

अत्यधिक सलाह दें ASIO – 111111

7

वेबसाइट ++ इसे आपके लिए करना चाहिए। https://github.com/zaphoyd/websocketpp

हालांकि यह जानने के लिए कि सर्वर/क्लाइंट कार्यान्वयन वेबसाइट्स के कौन से संस्करण महत्वपूर्ण हैं।

0

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

https://github.com/hannon235/socket.io-poco/blob/master/examples/TestClient/main.cpp

अद्यतन:

बहुत अधिक समय के लिए इस पुस्तकालय को एकीकृत करने की कोशिश की। यह वर्तमान में पूरी तरह से बेक्ड नहीं है। उत्पादन सेटिंग में उपयोग करने से पहले इसे और अधिक काम की ज़रूरत है।

2

शायद यह अभी भी उपयोगी हो सकता है।

वहाँ विकसित के लिए सी में कैसे आप एक WebSocket बनाने और इसे संभाल कर सकते हैं के कुछ उदाहरण हैं एक अच्छा WebSocket पुस्तकालय है।

(अधिक जानकारी के लिए) http://libwebsockets.org/trac/libwebsockets या https://github.com/warmcat/libwebsockets

6

वहाँ एक महान पुस्तकालय यहाँ है, Beast.WebSocket जो Boost.Asio पर भारी बनाता है: http://vinniefalco.github.io/

यहाँ एक उदाहरण कार्यक्रम है कि WebSocket बात करती है:

#include <beast/websocket.hpp> 
#include <beast/buffers_debug.hpp> 
#include <boost/asio.hpp> 
#include <iostream> 
#include <string> 

int main() 
{ 
    // Normal boost::asio setup 
    std::string const host = "echo.websocket.org"; 
    boost::asio::io_service ios; 
    boost::asio::ip::tcp::resolver r(ios); 
    boost::asio::ip::tcp::socket sock(ios); 
    boost::asio::connect(sock, 
     r.resolve(boost::asio::ip::tcp::resolver::query{host, "80"})); 

    using namespace beast::websocket; 

    // WebSocket connect and send message using beast 
    stream<boost::asio::ip::tcp::socket&> ws(sock); 
    ws.handshake(host, "/"); 
    ws.write(boost::asio::buffer("Hello, world!")); 

    // Receive WebSocket message, print and close using beast 
    beast::streambuf sb; 
    opcode op; 
    ws.read(op, sb); 
    ws.close(close_code::normal); 
    std::cout << 
     beast::debug::buffers_to_string(sb.data()) << "\n"; 
} 
+0

मेरे पास बूस्ट संस्करण है: 1.53.0, और मुझे घातक त्रुटि मिल रही है: boost/animal/websocket।एचपीपी: ऐसी कोई फ़ाइल या निर्देशिका – AMB

+0

आपको बूस्ट 1.58.0 या उसके बाद की आवश्यकता है, और आपको अपने शामिल पथों में जानवर/निर्देशिका शामिल करना होगा। –

+0

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