चूंकि मैं अतिरिक्त विवरण प्रदान कर रहा हूं, इसलिए मैं मूल (इसे संपादित करने के बजाय) के आधार पर अपना उत्तर लिख रहा हूं ।
हां, ऐसा करने का एक तरीका है, लेकिन यह तरीका केवल वेब-आधारित फेसबुक और मैसेंजर के लिए काम करता है; आप मोबाइल एप्लिकेशन के लिए कुछ ऐसा नहीं कर सकते।
मूल रूप से, अगर ग्राहक अभी भी उपलब्ध है, तो फेसबुक सर्वर की ओर से समयबद्ध अनुरोधों का उपयोग करता है। इसलिए फ्रंट एंड (लोडेड फेसबुक वेब पेज) समय- समय पर अपने सर्वरों को निष्क्रिय समय के साथ HTTP अनुरोध ( एक्सएचआर ) भेजेगा ।
यहाँ इस तरह के अनुरोध का एक उदाहरण है:
https://1-edge-chat.facebook.com/pull?channel=p_<UserID>&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline
नोट: मैंने उस यूजर आईडी को बदल दिया है जो आम तौर पर एक नंबर होता है।
यदि आप ऊपर दिए गए URL को पढ़ते हैं, तो आप उस भाग को idle = 117 कहते हुए देखेंगे । यह दर्शाता है कि खाते की कुल संख्या सेकंड के लिए निष्क्रिय है। राज्य = ऑफ़लाइन चैट पर या बंद कर दिया है कि क्या के लिए खड़ा है।
इसलिए, इसे अक्षम करने के लिए, अपने विज्ञापन ब्लॉकर की कस्टम सूची फिल्टर में निम्नलिखित नियम जोड़ें:
||*-edge-chat.facebook.com^$xmlhttprequest
दोनों फेसबुक और मैसेंजर पर निष्क्रिय करने के लिए, आप निम्नलिखित दो लाइनें जोड़ सकते हैं:
||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest
या एकल पंक्ति, रेगेक्स का उपयोग कर :
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest
इस पद्धति की कुछ कमियां यह हैं कि आप वास्तविक समय में संदेश प्राप्त नहीं कर पाएंगे और चैट चालू होने पर भी आप ऑनलाइन दिखाई नहीं देंगे। नए संदेश प्राप्त करने के लिए आपको पृष्ठ ताज़ा करना होगा।
इन दोनों कमियों से बचने के लिए, यहाँ एक समाधान है। आप इस पंक्ति को इसके बजाय जोड़ सकते हैं:
/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest
या, फेसबुक और मैसेंजर दोनों के लिए इसे जोड़ें:
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest
इसका अंतिम परिणाम निम्नलिखित होगा:
- जब आपकी चैट बंद हो जाती है, तो आप ऑनलाइन दिखाई नहीं देंगे, आपकी अंतिम गतिविधि की सूचना नहीं दी जाएगी, और आप वास्तविक समय में संदेश प्राप्त नहीं कर पाएंगे।
- जब आपकी चैट चालू होगी, तो आप ऑनलाइन दिखाई देंगे, आपकी अंतिम गतिविधि की सूचना दी जाएगी, और आप वास्तविक समय में संदेश प्राप्त कर सकेंगे।
दुर्भाग्य से, कोई अन्य समाधान नहीं लगता है क्योंकि फेसबुक के सामने के छोर पर केवल तभी संदेश आ सकते हैं जब ग्राहक समय-समय पर रिपोर्ट करते हैं कि वे सक्रिय हैं, इसलिए अंतिम गतिविधि की सूचना दिए जाने के बाद ही भ्रूण को किया जाता है। इन दोनों कार्यों को एक ही अनुरोध के माध्यम से एक एकल बैक-एंड स्क्रिप्ट ( * -edge-chat.facebook.com / pull ) द्वारा संभव बनाया गया है ; इसलिए, आपके पास एक दूसरे के बिना नहीं हो सकता।