WebSocket Chat

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

चरण 5: वेबसॉकेट कनेक्शन का परीक्षण करें

  1. phpstart_server.php चलाकर अपना वेबसॉकेट सर्वर प्रारंभ करें।
  2. ब्राउज़र में Index.html खोलें।
  3. एकाधिक क्लाइंट का अनुकरण करने के लिए उसी पृष्ठ को किसी अन्य ब्राउज़र या टैब में खोलें।

जब आप एक क्लाइंट से संदेश भेजते हैं, तो यह सभी कनेक्टेड क्लाइंट के ब्राउज़र में दिखाई देगा।


PHP में वेबसॉकेट का उपयोग करने के लाभ


PHP में वेबसॉकेट के लिए केस का उपयोग करें


निष्कर्ष

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

","image":"http://www.luping.net/uploads/20240930/172769436566fa861d5b103.jpg","datePublished":"2024-11-06T15:21:16+08:00","dateModified":"2024-11-06T15:21:16+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में WebSockets को समझना

PHP में WebSockets को समझना

2024-11-06 को प्रकाशित
ब्राउज़ करें:259

Understanding WebSockets in PHP

वेबसॉकेट एकल टीसीपी कनेक्शन पर एक वास्तविक समय, पूर्ण-डुप्लेक्स संचार चैनल प्रदान करते हैं। HTTP के विपरीत, जहां क्लाइंट सर्वर को अनुरोध भेजता है और प्रतिक्रिया की प्रतीक्षा करता है, WebSockets एकाधिक अनुरोधों की आवश्यकता के बिना क्लाइंट और सर्वर के बीच निरंतर संचार की अनुमति देता है। यह उन अनुप्रयोगों के लिए आदर्श है जिनके लिए वास्तविक समय अपडेट की आवश्यकता होती है, जैसे चैट एप्लिकेशन, लाइव नोटिफिकेशन और ऑनलाइन गेम।

इस गाइड में, हम वेबसॉकेट का पता लगाएंगे, वे कैसे काम करते हैं, और उन्हें PHP में कैसे लागू किया जाए।


वेबसॉकेट क्या हैं?

वेबसॉकेट एक वेब ब्राउज़र (या किसी अन्य क्लाइंट) और एक सर्वर के बीच इंटरैक्टिव संचार सक्षम करता है। यहां वेबसॉकेट के प्रमुख पहलू हैं:

  1. पूर्ण-डुप्लेक्स संचार: क्लाइंट और सर्वर दोनों किसी भी समय एक-दूसरे को संदेश भेज सकते हैं, जिससे कनेक्शन पारंपरिक HTTP पोलिंग से अधिक कुशल हो जाता है।
  2. लगातार कनेक्शन: एक बार स्थापित होने के बाद, वेबसॉकेट कनेक्शन तब तक खुला रहता है जब तक कि इसे क्लाइंट या सर्वर द्वारा स्पष्ट रूप से बंद नहीं किया जाता है।
  3. कम विलंबता: क्योंकि वेबसॉकेट प्रत्येक अनुरोध के लिए नए कनेक्शन खोलने की आवश्यकता को खत्म करते हैं, वे विलंबता को कम करते हैं, जिससे वे वास्तविक समय संचार के लिए आदर्श बन जाते हैं।

वेबसॉकेट कैसे काम करते हैं

  1. हैंडशेक: संचार एक HTTP अनुरोध के साथ शुरू होता है। क्लाइंट HTTP से वेबसॉकेट पर कनेक्शन स्विच करने के लिए अपग्रेड हेडर के साथ एक HTTP अनुरोध भेजता है।
  2. कनेक्शन स्थापित: एक बार जब सर्वर हैंडशेक स्वीकार कर लेता है, तो कनेक्शन स्थापित हो जाता है, और क्लाइंट और सर्वर दोनों संदेश भेजना और प्राप्त करना शुरू कर सकते हैं।
  3. मैसेजिंग: डेटा फ़्रेम के माध्यम से प्रसारित किया जाता है, जो हल्के होते हैं और HTTP हेडर के ओवरहेड के बिना आगे और पीछे भेजे जा सकते हैं।
  4. कनेक्शन समाप्ति: क्लाइंट या सर्वर में से कोई भी कनेक्शन समाप्त कर सकता है।

वेबसॉकेट का उपयोग कब करें

  • रीयल-टाइम एप्लिकेशन: जैसे चैट एप्लिकेशन, लाइव नोटिफिकेशन और सहयोगी संपादन।
  • गेम्स: मल्टीप्लेयर ऑनलाइन गेम के लिए जहां लगातार अपडेट आवश्यक हैं।
  • लाइव फ़ीड्स: IoT उपकरणों से स्टॉक की कीमतें, खेल स्कोर, या वास्तविक समय डेटा स्ट्रीमिंग।
  • सहयोग उपकरण: Google डॉक्स जैसे ऐप्स के लिए जहां एकाधिक उपयोगकर्ताओं को वास्तविक समय में अपडेट देखने की आवश्यकता होती है।

PHP में वेबसॉकेट लागू करना

PHP में WebSockets को लागू करने के लिए, आप Ratchet जैसी लाइब्रेरी का उपयोग कर सकते हैं, एक PHP लाइब्रेरी जिसे विशेष रूप से WebSockets का उपयोग करके वास्तविक समय, द्विदिश संचार के लिए डिज़ाइन किया गया है।


रैचेट का उपयोग करके चरण-दर-चरण वेबसॉकेट कार्यान्वयन

चरण 1: संगीतकार के माध्यम से रैचेट स्थापित करें

सबसे पहले, आपको रैचेट लाइब्रेरी स्थापित करनी होगी। यह मानते हुए कि आपने कंपोज़र स्थापित कर लिया है, आप निम्न कमांड चला सकते हैं:

composer require cboden/ratchet

चरण 2: PHP में एक वेबसॉकेट सर्वर बनाएं

आइए एक सरल वेबसॉकेट सर्वर बनाएं जो कनेक्शन और संदेशों को संभालेगा।

  1. WebSocketServer.php में एक WebSocket सर्वर क्लास बनाएं:
clients = new \SplObjectStorage;
    }

    // Called when a new client connects
    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection: ({$conn->resourceId})\n";
    }

    // Called when a client sends a message
    public function onMessage(ConnectionInterface $from, $msg) {
        echo "New message: $msg\n";

        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // Send the message to everyone except the sender
                $client->send($msg);
            }
        }
    }

    // Called when a connection is closed
    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed: ({$conn->resourceId})\n";
    }

    // Called if an error occurs
    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "Error: {$e->getMessage()}\n";
        $conn->close();
    }
}

यह वर्ग रैचेट के MessageComponentInterface को लागू करता है, जो नए कनेक्शन, आने वाले संदेशों, बंद कनेक्शन और त्रुटियों को संभालने के तरीकों को परिभाषित करता है।

चरण 3: वेबसॉकेट सर्वर चलाना

WebSocket सर्वर शुरू करने के लिए एक नई PHP स्क्रिप्ट बनाएं, उदाहरण के लिए,start_server.php।

run();

आप इस स्क्रिप्ट को चलाकर सर्वर शुरू कर सकते हैं:

php start_server.php

सर्वर अब ws://localhost:8080 पर चलेगा।

चरण 4: वेबसॉकेट सर्वर से कनेक्ट करने के लिए एक फ्रंटएंड बनाएं

अब, वेबसॉकेट सर्वर से कनेक्ट करने के लिए jQuery और JavaScript के साथ एक HTML फ़ाइल बनाएं।

  1. एक HTML फ़ाइल बनाएं Index.html:


    WebSocket Chat

WebSocket Chat

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

चरण 5: वेबसॉकेट कनेक्शन का परीक्षण करें

  1. phpstart_server.php चलाकर अपना वेबसॉकेट सर्वर प्रारंभ करें।
  2. ब्राउज़र में Index.html खोलें।
  3. एकाधिक क्लाइंट का अनुकरण करने के लिए उसी पृष्ठ को किसी अन्य ब्राउज़र या टैब में खोलें।

जब आप एक क्लाइंट से संदेश भेजते हैं, तो यह सभी कनेक्टेड क्लाइंट के ब्राउज़र में दिखाई देगा।


PHP में वेबसॉकेट का उपयोग करने के लाभ

  • रीयल-टाइम अपडेट: वेबसॉकेट HTTP पोलिंग के ओवरहेड के बिना रीयल-टाइम अपडेट प्रदान करते हैं।
  • कम विलंबता: चूंकि कनेक्शन खुला रहता है, संदेश तुरंत भेजे जा सकते हैं, जिससे विलंबता कम हो जाती है।
  • द्वि-दिशात्मक संचार: पारंपरिक HTTP के विपरीत जहां संचार क्लाइंट द्वारा शुरू किया जाता है, सर्वर और क्लाइंट दोनों एक-दूसरे को एक साथ संदेश भेज सकते हैं।

PHP में वेबसॉकेट के लिए केस का उपयोग करें

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

निष्कर्ष

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/mbarifulhaque/understand-websockets-in-php-2cli?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3