संचार प्रोटोकॉल का कार्य
चूंकि TCP स्ट्रीम आधारित है, क्लाइंट द्वारा भेजा गया अनुरोध डेटा सेवा प्रदाता में पानी के प्रवाह के समान बहता है, सेवा प्रदाता को यह जांचना चाहिए कि क्या डेटा पूरा है, क्योंकि संभव है कि केवल एक अनुरोध का कुछ डेटा सेवा प्रदाता तक पहुंचा हो, या यहां तक कि कई अनुरोध जुड़े हुए सेवा प्रदाता तक पहुंचे हों। यह जानने के लिए कि क्या अनुरोध पूरी तरह से पहुंचा है या विभिन्न जुड़े हुए अनुरोधों से अनुरोध को अलग करना है, एक संचार प्रोटोकॉल का एक सेट निर्धारित करना आवश्यक है।
Workerman में प्रोटोकॉल निर्धारित क्यों करना है?
परंपरागत PHP विकास मुख्य रूप से वेब आधारित होते हैं, जो ज्यादातर HTTP प्रोटोकॉल पर आधारित होते हैं, HTTP प्रोटोकॉल का विश्लेषण और प्रक्रिया पूरी तरह से WebServer द्वारा की जाती है, इसलिए डेवलपर्स प्रोटोकॉल के मामलों की परवाह नहीं करते। हालांकि, जब हमें गैर-HTTP प्रोटोकॉल पर आधारित विकास की आवश्यकता होती है, तो डेवलपर्स को प्रोटोकॉल के मामलों पर विचार करना आवश्यक होता है।
Workerman द्वारा समर्थित प्रोटोकॉल
Workerman वर्तमान में HTTP, websocket, text प्रोटोकॉल (जैसा कि परिशिष्ट विवरण में है), frame प्रोटोकॉल (जैसा कि परिशिष्ट विवरण में है) और ws प्रोटोकॉल (जैसा कि परिशिष्ट विवरण में है) का समर्थन करता है। जब आपको इन प्रोटोकॉल पर आधारित संचार की आवश्यकता होती है, तो आप सीधे उपयोग कर सकते हैं, उपयोग का तरीका है: Worker को प्रारंभ करते समय प्रोटोकॉल निर्दिष्ट करें, जैसे
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// websocket://0.0.0.0:2345 यह दर्शाता है कि websocket प्रोटोकॉल पर पोर्ट 2345 को सुनें
$websocket_worker = new Worker('websocket://0.0.0.0:2345');
// text प्रोटोकॉल
$text_worker = new Worker('text://0.0.0.0:2346');
// frame प्रोटोकॉल
$frame_worker = new Worker('frame://0.0.0.0:2347');
// tcp Worker, सीधे socket पर आधारित संपर्क, किसी भी एप्लिकेशन स्तर के प्रोटोकॉल का उपयोग नहीं करता
$tcp_worker = new Worker('tcp://0.0.0.0:2348');
// udp Worker, किसी भी एप्लिकेशन स्तर के प्रोटोकॉल का उपयोग नहीं करता
$udp_worker = new Worker('udp://0.0.0.0:2349');
// unix domain Worker, किसी भी एप्लिकेशन स्तर के प्रोटोकॉल का उपयोग नहीं करता
$unix_worker = new Worker('unix:///tmp/wm.sock');
अपनी कस्टम संचार प्रोटोकॉल का उपयोग करना
जब Workerman द्वारा प्रदान किए गए संचार प्रोटोकॉल विकास की आवश्यकताओं को पूरा नहीं करते हैं, तो डेवलपर्स अपनी कस्टम संचार प्रोटोकॉल तैयार कर सकते हैं, कस्टम बनाने की विधि अगले अनुभाग में है।
सूचना:
Workerman एक built-in text प्रोटोकॉल प्रदान करता है, प्रोटोकॉल प्रारूप टेक्स्ट + नई पंक्ति। text प्रोटोकॉल का विकास और परीक्षण बहुत सरल है, यह अधिकांश कस्टम प्रोटोकॉल परिदृश्यों के लिए उपयोग किया जा सकता है और telnet परीक्षण का समर्थन करता है। यदि डेवलपर को अपनी एप्लिकेशन प्रोटोकॉल विकसित करनी है, तो वे सीधे text प्रोटोकॉल का उपयोग कर सकते हैं, और इसे अलग से विकसित करने की आवश्यकता नहीं है।
text प्रोटोकॉल विवरण के लिए कृपया "परिशिष्ट Text प्रोटोकॉल भाग" देखें।