PHP में WebSockets: बिना जादू के real-time एप्लिकेशन बनाना

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

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

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

PHP में WebSockets: बिना जादू के real-time एप्लिकेशन बनाना

\n\n

क्या आपने कभी सोचा है कि आधुनिक वेब एप्लिकेशन में सूचनाएं तुरंत क्यों आती हैं, और चैट बिना लगातार F5 दबाए कैसे काम करती हैं? रहस्य WebSockets में है। और हाँ, PHP भी real-time में सक्षम है। इस लेख में, हम समझेंगे कि PHP को WebSockets से कैसे जोड़ा जाए, एक लाइव चैट और सूचनाएं लिखेंगे, और सबसे महत्वपूर्ण बात, यह बिना किसी परेशानी और अनावश्यक लाइब्रेरी के करेंगे।

\n\n

अगर आप इस बात के आदी हैं कि PHP "अनुरोध-प्रतिक्रिया" है, तो आश्चर्यचकित होने के लिए तैयार रहें। PHP में WebSockets की मदद से, आप पूर्ण real-time एप्लिकेशन बना सकते हैं: एक साधारण चैट से लेकर मल्टीप्लेयर गेम तक। और यह सब आपकी पसंदीदा भाषा में।

\n\n

WebSockets क्या है और PHP को इसकी आवश्यकता क्यों है?

\n\n

WebSocket क्लाइंट और सर्वर के बीच दो-तरफा संचार का एक प्रोटोकॉल है। सामान्य HTTP के विपरीत, जहां क्लाइंट लगातार सर्वर से पूछता है "क्या कोई खबर है?", WebSocket कनेक्शन को खुला रखता है। जब डेटा उपलब्ध होता है, तो सर्वर स्वयं क्लाइंट को डेटा भेजता है।

\n\n

PHP के लिए यह एक वास्तविक सफलता है। पहले, real-time केवल Node.js या asyncio के साथ Python का क्षेत्र था। लेकिन अब PHP पर real-time एप्लिकेशन एक वास्तविकता है। Ratchet और Swoole जैसी लाइब्रेरी की बदौलत, PHP एक लंबे समय तक चलने वाली प्रक्रिया के रूप में काम कर सकता है, जो हजारों समवर्ती कनेक्शनों को संभाल सकता है।

\n\n

यह कहाँ उपयोगी होगा?

\n
    \n
  • चैट और मैसेंजर;
  • \n
  • सूचना प्रणाली (नए ऑर्डर, संदेश);
  • \n
  • दस्तावेज़ों का सहयोगात्मक संपादन;
  • \n
  • ऑनलाइन गेम और क्विज़;
  • \n
  • रीयल-टाइम में मॉनिटरिंग और डैशबोर्ड।
  • \n
\n\n

तैयारी: शुरुआत करने के लिए क्या चाहिए

\n\n

PHP पर WebSocket सर्वर के साथ काम करने के लिए हमें आवश्यकता होगी:

\n
    \n
  • PHP 7.4 या उच्चतर (बेहतर होगा 8.x);
  • \n
  • Composer — पैकेज मैनेजर;
  • \n
  • Ratchet लाइब्रेरी (या प्रोडक्शन के लिए Swoole);
  • \n
  • OOP और कंसोल के साथ काम करने की बुनियादी समझ।
  • \n
\n\n

Composer के माध्यम से Ratchet स्थापित करें:

\n
composer require cboden/ratchet
\n\n

स्थापना के बाद, आपके पास एक vendor फ़ोल्डर और composer.json फ़ाइल होगी। PHP पर पहला real-time एप्लिकेशन लिखने के लिए सब कुछ तैयार है।

\n\n

PHP पर एक सरल WebSocket सर्वर लिखना

\n\n

एक फ़ाइल server.php बनाएं। यह हमारा PHP WebSocket सर्वर होगा, जो कनेक्शन स्वीकार करता है और सभी जुड़े क्लाइंट को संदेश भेजता है।

\n\n
<?php\nuse Ratchet\\Server\\IoServer;\nuse Ratchet\\Http\\HttpServer;\nuse Ratchet\\WebSocket\\WsServer;\nuse Ratchet\\MessageComponentInterface;\nuse Ratchet\\ConnectionInterface;\n\nrequire __DIR__ . '/vendor/autoload.php';\n\nclass Chat implements MessageComponentInterface {\n    protected $clients;\n\n    public function __construct() {\n        $this->clients = new \\SplObjectStorage;\n        echo "सर्वर शुरू हो गया!\\n";\n    }\n\n    public function onOpen(ConnectionInterface $conn) {\n        $this->clients->attach($conn);\n        echo "नया कनेक्शन: {$conn->resourceId}\\n";\n    }\n\n    public function onMessage(ConnectionInterface $from, $msg) {\n        foreach ($this->clients as $client) {\n            if ($from !== $client) {\n                $client->send($msg);\n            }\n        }\n        echo "{$from->resourceId} से संदेश: $msg\\n";\n    }\n\n    public function onClose(ConnectionInterface $conn) {\n        $this->clients->detach($conn);\n        echo "कनेक्शन बंद हुआ: {$conn->resourceId}\\n";\n    }\n\n    public function onError(ConnectionInterface $conn, \\Exception $e) {\n        echo "त्रुटि: {$e->getMessage()}\\n";\n        $conn->close();\n    }\n}\n\n$server = IoServer::factory(\n    new HttpServer(\n        new WsServer(\n            new Chat()\n        )\n    ),\n    8080\n);\n\n$server->run();
\n\n

कंसोल से सर्वर शुरू करें:

\n
php server.php
\n\n

बस! सर्वर पोर्ट 8080 पर सुन रहा है और WebSocket कनेक्शन स्वीकार करने के लिए तैयार है। अब

ब्लॉग

पुस्तक अनुशंसाएँ