क्या वर्डप्रेस वेबस्केट्स को सपोर्ट करने के लिए बनाया जा सकता है?


18

Websockets एचटीएमएल 5 में लिपटे एक शांत, अत्याधुनिक तकनीक है। मूल रूप से, आप एक वेब सर्वर के साथ लगातार, 2-तरह के संचार को सक्षम करने के लिए एक वेबसैट खोल सकते हैं। क्लाइंट (यूजर इंटरफेस) अनायास संदेश भेज सकता है, और सर्वर संदेश भी भेज सकता है।

मौजूदा तकनीक (जावास्क्रिप्ट) के लिए क्लाइंट द्वारा शुरू की जाने वाली सभी चीजों की आवश्यकता होती है - सर्वर क्लाइंट को कुछ भी नहीं भेज सकता है जो क्लाइंट अनुरोध नहीं करता है। इसलिए स्क्रिप्ट को लगातार ताज़ा करने और उन डेटा को फिर से अनुरोध करने की आवश्यकता होती है जो शायद नहीं बदले। Websockets एक " पुश " आधार पर अधिक काम करते हैं और जब भी नया डेटा पाइप से नीचे आते हैं।

दुर्भाग्य से, अधिकांश (सभी मुझे मिल सकते हैं, वैसे भी) वेबसोकेट कार्यान्वयन को काम करने के लिए एक विशिष्ट सर्वर एप्लिकेशन की आवश्यकता होती है। लोग अपाचे को बंदरगाहों 80 और 443 (http और https) पर चलाएंगे और वेबसैटके अनुरोधों को संभालने के लिए दूसरे पोर्ट (यानी 8000 या 8080) पर एक और सिस्टम (आमतौर पर Node.js) चलाएंगे।

यह स्पष्ट रूप से काम करता है, लेकिन इसमें कुछ कमियां हैं।

मेरे पास एक प्लगइन है जिसका मैं निर्माण करना चाहता हूं जो वर्डप्रेस के भीतर वेबसोकेट का उपयोग करने से बहुत लाभ होगा । लेकिन अगर किसी उपयोगकर्ता को दूसरे वेब सर्वर (आमतौर पर साझा होस्टिंग वाले लोगों के लिए असंभव) स्थापित करने की आवश्यकता होती है, तो यह एक प्लगइन के रूप में काम नहीं करेगा।

तो, आप में से किसी के लिए, जिनके पास अनुभव है, आप वर्डप्रेस को वेबस्कैट के साथ कैसे संगत करेंगे? क्या आप वर्डप्रेस को संचार स्वयं संभाल लेंगे, या किसी अन्य मिनी-सर्वर स्क्रिप्ट को प्लगइन में बंडल करेंगे? यदि आपने यह पहले ही कर लिया है, तो आपने इसे वर्डप्रेस को तोड़ने के बिना कैसे पूरा किया?

संभव संसाधन?


9/21/11 अपडेट

अपाचे (एक साझा होस्ट पर WP चलाने के लिए सबसे आम तौर पर स्थापित सर्वर) की सभी बातों के साथ, वास्तव में वेबस्कैट को मूल रूप से संभाल नहीं सकता है, मैं एक विकल्प के बारे में सोच रहा हूं। कई प्लगइन्स (उदाहरण के लिए JetPack) सामग्री उत्पन्न करने के लिए किसी बाहरी सेवा या API से बात करते हैं।

आँकड़े Automattic से सामग्री का अनुरोध करते हैं। Akismet बाहरी सर्वर से डेटा को आगे और पीछे भेजता है। डेडलाइन के बाद प्रकाशित समय पर सामग्री जमा करता है। कुछ एसईओ उपकरण चीजों को बाहरी सिस्टम के माध्यम से आगे-पीछे करते हैं।

तो एक वर्डप्रेस प्लगइन के भीतर वेबसोकेट कोड के आवास के विकल्प के रूप में, क्या एक केंद्रीय स्थान में एक वेबसोकेट सेवा की मेजबानी करना संभव होगा और इसके बजाय एक वर्डप्रेस फ्रंटएंड के साथ बातचीत होगी?


3
लब्बोलुआब यह है: यदि वेबस्केट मूल वेबसर्वर के साथ अच्छी तरह से काम नहीं करता है, तो आप इसे आसानी से उस वेबसर्वर के साथ नहीं कर सकते। यह एक वर्डप्रेस-विशिष्ट समस्या नहीं है। जैसा कि आपने कहा था, वेबसोकेट को आम तौर पर एक अलग सर्वर की आवश्यकता होती है जैसे नोड.जेएस या कुछ और, वे अपाचे के साथ बहुत अच्छी तरह से काम नहीं करने जा रहे हैं। तो आपका मुद्दा "मैं इसे वर्डप्रेस के साथ संगत कैसे बनाऊं" में से एक नहीं है, यह "मैं इसे सबसे कम आम भाजक होस्टिंग पर कैसे काम कर सकता हूं", जो मछली की पूरी अन्य केतली है।
ओट्टो

WebSocket सपोर्ट को वर्डप्रेस कोर में जोड़ा जा सकता है, जिसमें बिल्ट-इन WebSocket सर्वर और एडमिन-ajax.php जैसे एंडपॉइंट होते हैं, नहीं? वर्डप्रेस के साथ वेबस्कॉर्ट के लिए जावास्क्रिप्ट के सामने जावास्क्रिप्ट नॉड / बैकएड लाइब्रेरी सॉकेट.आईओ भी है, जो वर्डप्रेस के पीछे की कंपनी ऑटोमैटिक द्वारा विकसित किया गया है।
बपतिस्मा

जवाबों:


8

WebS Pocket websockets प्रोटोकॉल का उपयोग करते हैं: WS: /example.com/yourscript.js और एक सिंक्रोनस कनेक्शन खोलें - जिसका अर्थ है कि कनेक्शन को खुला रखा गया है और ब्राउज़र को समर्पित है।

httpd सर्वर, जैसे apache2 (अधिकांश साझा होस्टिंग प्रदाताओं द्वारा उपयोग किया जाता है) http प्रोटोकॉल का उपयोग करते हैं: http://example.com/yourscript.jsऔर एक अतुल्यकालिक कनेक्शन खोलते हैं - जिसका अर्थ है कि सर्वर और ब्राउज़र के बीच कोई कनेक्शन खुला नहीं रखा गया है। (आप कुछ कॉन्फ़िगरेशन पैरामीटर सेट करके, खुले तौर पर, संयत रूप से लम्बा खींच सकते हैं - लेकिन आम तौर पर बोलना, यह अतुल्यकालिक है)।

जैसा कि आप कल्पना कर सकते हैं, ब्राउज़र और सर्वर के बीच खुले कनेक्शन को बनाए रखना प्रत्येक ब्राउज़र कनेक्शन के लिए अधिक सर्वर संसाधनों को समर्पित करता है, और इसलिए प्रत्येक अनुरोध के बाद कनेक्शन को छोड़ने की तुलना में सर्वर संसाधनों का अधिक कर है। साझा होस्टिंग पर डब्ल्यूएस का समर्थन करने के लिए साझा होस्टिंग प्रदाता समझ से बाहर हैं।

हालांकि कुछ साझा किए गए मेजबानों में mod_python स्थापित हो सकता है, जिससे आपके प्लग-इन उपयोगकर्ताओं को pywebsocket चलाने की अनुमति मिलती है , pywebsocket का अपना दस्तावेज़ स्पष्ट रूप से बताता है कि "pywebsocket परीक्षण या प्रयोगात्मक उद्देश्यों के लिए अभिप्रेत है।"

इसलिए, जब कोई एक pywebsocket सर्वर बनाने के लिए एक अजगर बंडल कोड की कल्पना कर सकता है, जो एक Apache सर्वर है, जो इसका समर्थन करता है, मुझे विश्वास है कि ऐसा करने वाले प्लगइन को वितरित करना कभी भी उचित नहीं होगा।


कुछ सीधे पीएचपी लाइब्रेरी हैं जो वेबस्कैट का समर्थन करने का दावा करते हैं। अपाचे के भीतर प्रभावी ढंग से काम करेंगे या नहीं, यह एक दिलचस्प परीक्षा होगी। लिंक के लिए मेरा अपडेट देखें ...
EAMann

3

आपके अपडेट के जवाब में, मेरी राय में और मेरे द्वारा किए गए शोध के आधार पर, यह सबसे अच्छा विकल्प होगा। इससे भी बेहतर यह होगा कि आप फ्रंट एंड प्लगइन बनाएं और प्लग-इन के साथ बात करने के लिए बाहरी वेबसोकेट सेवा बनाएं और इसके लिए शुल्क लें ताकि आप चाहें तो अपने विचार को मुद्रीकृत कर सकें। तुम भी websocket सेवा के लिए स्रोत कोड प्रदान कर सकते हैं और प्लगइन में एक सेटिंग बनाने के लिए जहां (जो डोमेन / आईपी और बंदरगाह) websocket सेवा स्थित है।


2

इस उद्देश्य के लिए "क्लासिक" अपाचे 2 - अपाचे 2-एमपीएम-प्रीफोर्क - को भूल जाओ। शायद apache2-mpm-घटना इसे संभाल सकती है, लेकिन यह प्रयोगात्मक है। चूंकि Apache2 ईवेंट-चालित नहीं है, इसलिए @marfarma द्वारा वर्णित समस्या मौजूद है। आपको इस तरह की सेवा के लिए एक घटना-संचालित वेब सर्वर की आवश्यकता होगी, उदाहरण के लिए चेरोकी या नेग्नेक्स।

nginx वर्डप्रेस के लिए एक वास्तविक लाभ हो सकता है (जैसा कि wordpress.com इसे अपने सर्वर के रूप में भी उपयोग करता है), और यह उदाहरण के लिए n.js सेवा के लिए निर्दिष्ट अनुरोधों को प्रॉक्सी कर सकता है।

विषय में कुछ उदाहरण:

मैंने nginx + php-fpm + wordpress setup के लिए एक छोटा ट्यूटोरियल भी बनाया ।


"क्लासिक" दृष्टिकोण को भूल जाना वास्तव में लेट उपयोगकर्ताओं के लिए आसानी से स्थापित प्लगइन का उत्पादन करने का विकल्प नहीं है। हां, सर्वर से चीजों को परोसने के लिए nginx, cherokee, या node.js का उपयोग करना एक विकल्प है, लेकिन आप इसे केवल एक प्लगइन में नहीं डाल सकते हैं और आशा है कि उपयोगकर्ता a) इसे समझेंगे या b) इसके बारे में कुछ भी करने में सक्षम होंगे यह।
इमान

Apache2-mpm-prefork इस तरह के उपयोग को संभालने में सक्षम होने के लिए डिज़ाइन नहीं किया गया था। मेम्केड, एपीसी इत्यादि प्लगइन्स की आवश्यकता होती है, इसलिए इसे केवल ईवेंट-आधारित वेबसर्वर की आवश्यकता हो सकती है। यह एक बैकएंड-आवश्यकता है, mpm-prefork और mpm-कार्यकर्ता इसके लिए नहीं है।
petermolnar

1

एक अन्य संभावित समाधान एक तृतीय-पक्ष वेब सॉकेट प्रदाता का उपयोग करना है, मैंने पुशर (http://pusher.com/) के साथ थोड़ा सा खेला है, वहां एक एपीआई है जिसे आप टैप कर सकते हैं जो आपके लिए अच्छी तरह से काम कर सकता है 'करने की कोशिश कर रहा है। मैं इस बात पर विचार कर रहा हूं कि मैं इसका उपयोग अपनी खुद की वर्डप्रेस साइटों में कैसे कर सकता हूं।

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


0

संक्षिप्त उत्तर है: हां, यह सक्षम है। मैं कुछ हद तक असफल VPS के एक एकल बिंदु की तुलना में अधिक वितरित कर सकता हूं, जिसे आप होस्ट करते हैं, हालांकि। शायद कुछ लोड-संतुलित ईसी 2 सिस्टम या सोमेसच में देखें? (मैं मान रहा हूं कि आपके पास इस तरह की उपयुक्तता प्रदान करने के लिए एक राजस्व स्ट्रीम है। मुस्कराहट )


1
"इस तरह की उपयुक्तता प्रदान करने के लिए एक राजस्व धारा" ... यह अच्छा होगा :-)
EAMann
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.