workerman विकासकर्ता को जानना आवश्यक कुछ बातें
1, विंडोज़ पर्यावरण की सीमाएँ
विंडोज़ सिस्टम पर workerman एकल प्रक्रिया केवल 200+ कनेक्शनों को समर्थन करता है।
विंडोज़ सिस्टम पर multi-process सेट करने के लिए count पैरामीटर का उपयोग नहीं किया जा सकता।
विंडोज़ सिस्टम पर status, stop, reload, restart जैसे कमांड का उपयोग नहीं किया जा सकता।
विंडोज़ सिस्टम पर डेमन प्रक्रिया नहीं चलाई जा सकती, cmd विंडो बंद करने पर सेवा तुरंत रुक जाएगी।
विंडोज़ सिस्टम पर एक ही फ़ाइल में कई लिसनर को इनिशियलाइज़ नहीं किया जा सकता।
लिनक्स सिस्टम पर उपरोक्त सीमाएँ नहीं हैं, सुझाव दिया जाता है कि प्रोडक्शन वातावरण में लिनक्स सिस्टम का उपयोग करें, विकास वातावरण के लिए विंडोज़ सिस्टम का चयन किया जा सकता है।
2, workerman को apache या nginx की आवश्यकता नहीं है
workerman अपने आप में एक apache/nginx जैसे कंटेनर के रूप में है, बस PHP वातावरण ठीक है तो workerman चल सकता है।
3, workerman कमांड लाइन से शुरू होता है
शुरुआत का तरीका apache के समान कमांड का उपयोग करके शुरू करना है (सामान्य वेब स्पेस में workerman का उपयोग नहीं किया जा सकता)। प्रारंभिक स्क्रीन नीचे जैसा होता है

4, लंबा कनेक्शन हमेशा हृदय गति जोड़ना होगा
लंबा कनेक्शन हमेशा हृदय गति जोड़ना होगा, लंबा कनेक्शन हमेशा हृदय गति जोड़ना होगा, लंबा कनेक्शन हमेशा हृदय गति जोड़ना होगा, यह महत्वपूर्ण है इसे तीन बार कहा गया।
लंबा कनेक्शन लंबे समय तक संचार नहीं करेगा तो राउटर नोड द्वारा साफ़ कर दिया जाएगा जिससे कनेक्शन बंद हो जाएगा।
workerman हृदय गति विवरण、 gatewayWorker हृदय गति विवरण
5, क्लाइंट और सर्वर प्रोटोकॉल को संचार के लिए मेल खाना चाहिए
यह डेवलपर्स में बहुत सामान्य समस्या है। उदाहरण के लिए, यदि क्लाइंट websocket प्रोटोकॉल का उपयोग कर रहा है, तो सर्वर को भी websocket प्रोटोकॉल (सर्वर new Worker('websocket://0.0.0.0...')) का उपयोग करना चाहिए ताकि कनेक्ट किया जा सके और संचार किया जा सके।
ब्राउज़र के एड्रेस बार में websocket प्रोटोकॉल पोर्ट का उपयोग करने का प्रयास न करें, कच्चे tcp प्रोटोकॉल पोर्ट का उपयोग करने का प्रयास न करें, प्रोटोकॉल हमेशा मेल खाना चाहिए।
यहां का सिद्धांत इसी तरह है कि यदि आप अंग्रेजी स्पीकर से संवाद करना चाहते हैं, तो आपको अंग्रेजी का उपयोग करना होगा। यदि आप जापानी से संवाद करना चाहते हैं, तो आपको जापानी का उपयोग करना होगा। यहाँ की भाषा संचार प्रोटोकॉल के समान है, दोनों पक्षों (क्लाइंट और सर्वर) को संवाद करने के लिए समान भाषा का उपयोग करना होगा, अन्यथा संवाद नहीं हो सकेगा।
6, कनेक्शन विफलता के संभावित कारण
workerman का उपयोग करते समय जो सबसे आम समस्या होती है, वह है क्लाइंट का सर्वर से कनेक्शन विफल होना। सामान्यत: कारण निम्नलिखित हैं:
1, सर्वर फ़ायरवॉल (जिनमें क्लाउड सर्वर सुरक्षा समूह शामिल हैं) कनेक्शन को रोकता है (50% संभावना कि यही कारण है)
2, क्लाइंट और सर्वर द्वारा उपयोग किए जाने वाले प्रोटोकॉल असंगत हैं (30% संभावना)
3, ip या पोर्ट गलत लिखा गया है (15% संभावना)
4, सर्वर शुरू नहीं हुआ
7, exit die sleep स्टेटमेंट का उपयोग न करें
व्यवसाय में exit die कथन का उपयोग करने से प्रक्रिया समाप्त हो जाएगी, और WORKER EXIT UNEXPECTED त्रुटि प्रदर्शित होगी। निश्चित तौर पर, प्रक्रिया समाप्त हो जाने पर एक नया प्रक्रिया तुरंत पुनः शुरू किया जाएगा। यदि लौटाने की आवश्यकता हो, तो return का उपयोग करें। sleep स्टेटमेंट प्रक्रिया को सोने पर मजबूर करेगा, सोने के दौरान कोई व्यवसाय नहीं चलाया जाएगा, फ्रेमवर्क भी बंद हो जाएगा, जिससे उस प्रक्रिया के सभी क्लाइंट अनुरोधों को संसाधित नहीं किया जा सकेगा।
8, pcntl_fork फ़ंक्शन का उपयोग न करें
pcntl_fork का उपयोग नए प्रक्रियाओं को गतिशील रूप से बनाने के लिए किया जाता है, यदि आप व्यवसाय कोड में pcntl_fork का उपयोग करते हैं, तो यह अनावश्यक रूप से आश्रित प्रक्रियाएं उत्पन्न कर सकता है, जिससे व्यवसाय में असामान्यताएँ उत्पन्न हो सकती हैं। व्यवसाय में pcntl_fork कनेक्शन, संदेश, कनेक्शन बंद करने, टाइमर आदि घटनाओं के संचालन को प्रभावित करेगा, जिससे अप्रत्याशित अपवाद उत्पन्न होंगे।
9, व्यवसाय कोड में अनंत लूप नहीं होना चाहिए
व्यवसाय कोड में अनंत लूप नहीं होना चाहिए, अन्यथा कार्यभार workerman फ्रेमवर्क को वापस नहीं मिल पाएगा, जिससे अन्य क्लाइंट संदेशों को स्वीकार और संसाधित नहीं किया जा सकेगा।
10, कोड में परिवर्तन करने पर पुनः प्रारंभ करें
workerman एक स्थायी मेमोरी फ्रेमवर्क है, कोड में परिवर्तन करने पर workerman को पुनः प्रारंभ करना होगा ताकि नए कोड के प्रभाव को देखा जा सके।
11, लंबा कनेक्शन एप्लिकेशन के लिए GatewayWorker फ्रेमवर्क का उपयोग करने की सिफारिश की जाती है
कई डेवलपर्स workerman का उपयोग लंबा कनेक्शन एप्लिकेशन विकसित करने के लिए करते हैं, जैसे कि तात्कालिक संचार, IoT इत्यादि, लंबे कनेक्शन एप्लिकेशन के लिए सीधे GatewayWorker फ्रेमवर्क का उपयोग करने की सिफारिश की जाती है, यह workerman के आधार पर फिर से संकुचित किया गया है, जिससे लंबे कनेक्शन एप्लिकेशन का बैकएंड बनाना सरल और उपयोग में आसान है।
12, उच्च समवर्तीता का समर्थन करें
यदि व्यवसाय का समवर्ती कनेक्शन संख्या 1000 से अधिक ऑनलाइन है, तो कृपया लिनक्स कर्नेल का अनुकूलन करें, और इवेंट एक्सटेंशन स्थापित करें।