2011-09-21 16 views
9

फेसबुक चैट कैसे काम कर रही है? क्या कोई मुझे विचार दे सकता है? मेरा मतलब है कि वे websocket या AJAX का उपयोग कर रहे हैं? उन्होंने इसे कैसे लागू किया है?फेसबुक चैट कैसे काम कर रही है?

+0

फायरबग का उपयोग कर फेसबुक पेज को देखें; कंसोल टैब Especialy। – Alfwed

+0

बस एक टिप: एक्सएमपीपी –

उत्तर

10

यह एक comet (see wikipedia) मॉडल है:

धूमकेतु, एक वेब अनुप्रयोग मॉडल है जिसमें एक लंबे समय से आयोजित HTTP अनुरोध एक वेब सर्वर एक ब्राउज़र के लिए डेटा पुश करने के लिए अनुमति देता है ब्राउज़र स्पष्ट रूप से इसे का अनुरोध नहीं करता। धूमकेतु एक छतरी शब्द है, जिसमें इस बातचीत को प्राप्त करने के लिए कई तकनीकों शामिल हैं। इन सभी विधियों गैर-डिफ़ॉल्ट प्लगइन की बजाय जावास्क्रिप्ट, जैसे ब्राउज़र में डिफ़ॉल्ट रूप से शामिल सुविधाओं पर भरोसा करते हैं। धूमकेतु दृष्टिकोण वेब के मूल मॉडल से भिन्न है, जिसमें एक ब्राउज़र एक समय में एक पूर्ण वेब पेज का अनुरोध करता है।

धूमकेतु ढांचे का उदाहरण APE है। यह जावास्क्रिप्ट के लिए है, हालांकि धूमकेतु न केवल जावास्क्रिप्ट में लिखा जा सकता है।

0

उपयोगकर्ता वेबसाकेट हैंडशेक के रूप में जाने वाली प्रक्रिया के माध्यम से वेबस्केट कनेक्शन स्थापित करता है। यह प्रक्रिया उपयोगकर्ता के साथ नियमित HTTP अनुरोध भेजने वाले उपयोगकर्ता के साथ शुरू होती है। इस अनुरोध में एक अपग्रेड हेडर शामिल है जो सर्वर को सूचित करता है कि उपयोगकर्ता वेबस्केट कनेक्शन स्थापित करना चाहता है। वेबसाकेट यूआरएल डब्ल्यूएस योजना का उपयोग करते हैं। सुरक्षित वेबसॉकेट कनेक्शन के लिए भी Wss है जो HTTPS के बराबर है। यदि सर्वर वेबसॉकेट प्रोटोकॉल का समर्थन करता है, तो यह अपग्रेड के लिए सहमत होता है और प्रतिक्रिया में अपग्रेड हेडर के माध्यम से इसे संचारित करता है। अब हैंडशेक पूरा हो गया है प्रारंभिक HTTP कनेक्शन को वेबसॉकेट कनेक्शन द्वारा प्रतिस्थापित किया गया है जो समान अंतर्निहित टीसीपी/आईपी कनेक्शन का उपयोग करता है। इस बिंदु पर कोई भी पार्टी डेटा भेजना शुरू कर सकता है।

वेबसाकेट के साथ आप पारंपरिक HTTP अनुरोधों से जुड़े ओवरहेड को बिना किए गए जितना डेटा ट्रांसफर कर सकते हैं। डेटा को वेबसाकेट के माध्यम से संदेशों के रूप में स्थानांतरित किया जाता है, जिनमें से प्रत्येक में आपके द्वारा भेजे जा रहे डेटा (पेलोड) वाले एक या अधिक फ्रेम होते हैं। यह सुनिश्चित करने के लिए कि जब ग्राहक क्लाइंट तक पहुंचता है तो संदेश को ठीक से पुनर्निर्मित किया जा सकता है, प्रत्येक फ्रेम को पेलोड के बारे में 4-12 बाइट डेटा के साथ प्रीफ़िक्स्ड किया जाता है। इस फ्रेम-आधारित संदेश प्रणाली का उपयोग करने से हस्तांतरित किए गए गैर-पेलोड डेटा की मात्रा को कम करने में मदद मिलती है, जिससे विलंबता में महत्वपूर्ण कमी आती है।

संबंधित मुद्दे