WebSocket लाइब्रेरी C++

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

WebSocket क्या है और C++ के लिए लाइब्रेरी की आवश्यकता क्यों है?

WebSocket एक संचार प्रोटोकॉल है जो एकल TCP कनेक्शन पर फुल-डुप्लेक्स चैनल प्रदान करता है। HTTP के विपरीत, यह सर्वर और क्लाइंट को बिना लगातार अनुरोधों के रीयल-टाइम में डेटा का आदान-प्रदान करने की अनुमति देता है। C++ के लिए कई लाइब्रेरी हैं जो एप्लिकेशन में WebSocket को एकीकृत करना आसान बनाती हैं। सबसे लोकप्रिय में से एक Boost.Beast (Boost C++ Libraries का हिस्सा) है। यह WebSocket और HTTP के साथ काम करने के लिए निम्न-स्तरीय और उच्च-स्तरीय API प्रदान करता है।

Boost.Beast कैसे स्थापित करें?

Boost.Beast एक header-only लाइब्रेरी (संस्करण 1.75 तक) या Boost का हिस्सा है जिसे बिल्ड करने की आवश्यकता होती है। स्थापना:

# Ubuntu / Debiansudo apt install libboost-all-dev

# macOS (Homebrew)brew install boost

# Windows (vcpkg)vcpkg install boost-beast

header-only मोड के लिए, प्रोजेक्ट में हेडर फ़ाइलों को कॉपी करना पर्याप्त है।

लाइब्रेरी के मुख्य कार्य

  • WebSocket क्लाइंट और सर्वर — क्लाइंट और सर्वर दोनों कनेक्शनों के लिए समर्थन।
  • असिंक्रोनस कार्य — नॉन-ब्लॉकिंग इनपुट/आउटपुट के लिए Boost.Asio के साथ एकीकरण।
  • SSL/TLS समर्थन — Boost.Asio SSL के माध्यम से सुरक्षित कनेक्शन।
  • फ्रेमिंग और नियंत्रण फ्रेम — ping/pong, close का स्वचालित प्रसंस्करण।
  • HTTP upgrade — HTTP से WebSocket में handshake के लिए अंतर्निहित समर्थन।

कोड उदाहरण: C++ में एक सरल WebSocket सर्वर

#include <boost/beast/core.hpp>#include <boost/beast/websocket.hpp>#include <boost/asio/ip/tcp.hpp>#include <iostream>#include <string>

namespace beast = boost::beast;namespace http = beast::http;namespace websocket = beast::websocket;namespace net = boost::asio;using tcp = net::ip::tcp;

int main() { try { net::io_context ioc{1}; tcp::acceptor acceptor{ioc, {tcp::v4(), 8080}}; tcp::socket socket{ioc}; acceptor.accept(socket);

websocket::stream<tcp::socket> ws{std::move(socket)}; ws.accept();

for(;;) { beast::flat_buffer buffer; ws.read(buffer); std::string message = beast::buffers_to_string(buffer.data()); std::cout << "Received: " << message << std::endl; ws.write(beast::buffer("Echo: " + message)); } } catch(std::exception const& e) { std::cerr << "Error: " << e.what() << std::endl; return 1; } return 0;}

यह उदाहरण पोर्ट 8080 पर एक सर्वर बनाता है, एक कनेक्शन स्वीकार करता है, संदेश पढ़ता है और उन्हें "Echo: " उपसर्ग के साथ वापस भेजता है।

C++ WebSocket लाइब्रेरी का उपयोग कब करें?

यह लाइब्रेरी उन प्रोजेक्ट्स के लिए उपयुक्त है जहाँ प्रदर्शन और कम विलंबता महत्वपूर्ण है: चैट, ऑनलाइन गेम, वित्तीय ट्रेडिंग सिस्टम, रीयल-टाइम मॉनिटरिंग, IoT उपकरण। यदि आपको एक विश्वसनीय, क्रॉस-प्लेटफ़ॉर्म टूल चाहिए जिसमें सक्रिय समुदाय हो, तो Boost.Beast C++ के लिए सबसे अच्छा विकल्प है।

अनुशंसाएँ