php - english - हैली धूमकेतु 1986




लांग-पोलिंग, वेबसाइट्स, सर्वर-भेजे गए ईवेंट(एसएसई) और धूमकेतु क्या हैं? (2)

टीएमई ने अपने उत्कृष्ट उत्तर में बहुत मेहनत की, लेकिन मुझे लगता है कि ओपीएस सवाल का मूल यह है कि ये तकनीकें कैसे काम करती हैं बल्कि प्रत्येक तकनीक कैसे काम करती है।

PHP स्पष्ट विकास क्लाइंट साइड एचटीएमएल, सीएसएस, और जावास्क्रिप्ट के अलावा वेब विकास में सबसे अधिक इस्तेमाल की जाने वाली भाषा है। वास्तविक समय अनुप्रयोगों की बात आती है फिर भी PHP में 2 प्रमुख मुद्दे हैं:

1) PHP एक बहुत ही बुनियादी सीजीआई के रूप में शुरू किया। PHP शुरुआती चरण के बाद से बहुत दूर प्रगति कर चुका है, लेकिन यह छोटे चरणों में हुआ। PHP में पहले से ही लाखों उपयोगकर्ता थे जब तक यह एम्बेड-सक्षम और लचीली सी लाइब्रेरी बन गया था, जो आज है, जिनमें से अधिकांश निष्पादन के पहले मॉडल पर निर्भर थे, इसलिए इसने अभी तक बचने का ठोस प्रयास नहीं किया है आंतरिक रूप से सीजीआई मॉडल। यहां तक ​​कि कमांडलाइन इंटरफ़ेस भी PHP लाइब्रेरी (libfp5.so linux पर, windows पर php5ts.dll, आदि) को आमंत्रित करता है जैसे कि यह अभी भी एक सीजीआई एक जीईटी / POST अनुरोध संसाधित करता है। यह अभी भी कोड निष्पादित करता है जैसे कि इसे सिर्फ "पृष्ठ" बनाना है और फिर इसका जीवन चक्र समाप्त करना है। नतीजतन, मल्टी-थ्रेड या इवेंट संचालित प्रोग्रामिंग (PHP उपयोगकर्ताओं के भीतर) के लिए इसका बहुत कम समर्थन है, जो वर्तमान में वास्तविक समय, बहु-उपयोगकर्ता अनुप्रयोगों के लिए अप्रत्याशित बनाता है।

ध्यान दें कि PHP में PHP प्रयोज्य में ईवेंट लूप (जैसे libevent) और थ्रेड (जैसे pthreads) प्रदान करने के लिए एक्सटेंशन हैं, लेकिन बहुत से, बहुत से अनुप्रयोग इनका उपयोग करते हैं।

2) PHP अभी भी कचरा संग्रह के साथ महत्वपूर्ण मुद्दों है। यद्यपि ये मुद्दे लगातार सुधार रहे हैं (संभवतः ऊपर वर्णित जीवन चक्र को समाप्त करने का यह सबसे बड़ा कदम है), यहां तक ​​कि लंबे समय तक चलने वाले PHP अनुप्रयोगों को बनाने के सर्वोत्तम प्रयासों को नियमित आधार पर पुनरारंभ करने की आवश्यकता होती है। यह वास्तविक समय अनुप्रयोगों के लिए इसे अनैतिक बनाता है।

PHP 7 इन मुद्दों को ठीक करने के लिए एक शानदार कदम भी होगा, और रीयल-टाइम अनुप्रयोगों के लिए एक मंच के रूप में बहुत ही आशाजनक प्रतीत होता है।

मैंने कुछ लेख पढ़ने की कोशिश की है, लेकिन मैं अभी तक अवधारणाओं पर बहुत स्पष्ट नहीं हूं।

क्या कोई मुझे यह बताने के लिए एक शॉट लेना चाहेगा कि ये तकनीकें क्या हैं:

  1. लंबी मतदान
  2. सर्वर से भेजे गए घटनाक्रम
  3. WebSockets
  4. धूमकेतु

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

अब, उनमें से कौन सा मुझे रीयल-टाइम ऐप के लिए उपयोग करना चाहिए। मैं websockets के बारे में बहुत कुछ सुन रहा हूं (socket.io [node.js लाइब्रेरी] के साथ) लेकिन PHP क्यों नहीं?


मैंने इनके बारे में नोट करने की कोशिश की है और जावा परिप्रेक्ष्य से उदाहरण एकत्र और लिखे हैं।

जावा डेवलपर्स के लिए HTTP

रिवर्स अजाक्स - पुरानी शैली

सर्वर पक्ष पर Async हैंडलिंग

रिवर्स अजाक्स - नई शैली

सर्वर भेजे गए घटनाक्रम

इसे किसी भी जावा डेवलपर के लिए यहां रखना जो एक ही विषय में देख रहा है।





server-sent-events