जब आपको वेब पुश से जुड़ी कोई समस्या मिलती है, तो उस समस्या को डीबग करना मुश्किल हो सकता है या मदद मिल सकती है. इस दस्तावेज़ में कुछ सामान्य समस्याओं के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि आपको किन समस्याओं को ध्यान में रखना चाहिए Chrome या Firefox में कोई बग मिलता है, तो आपको यह टूल कैसे मिलेगा.
इससे पहले कि हम डीबग करने की प्रोसेस शुरू करें, शायद आपको डीबग करने में समस्या आ रही हो सेवा कर्मचारी खुद, फ़ाइल अपडेट नहीं हो रही है, रजिस्टर नहीं हो पा रहा है या आम तौर पर असामान्य व्यवहार. कई सर्विस वर्कर को डीबग करने से जुड़ा शानदार दस्तावेज़ हमारा सुझाव है कि अगर आपने इससे पहले सर्विस वर्कर डेवलपमेंट.
वेब पुश नोटिफ़िकेशन को डेवलप और टेस्ट करते समय दो अलग-अलग स्टेज होते हैं, जिनकी जांच करना ज़रूरी है. जिनके पास सामान्य समस्याओं / समस्याओं का एक सेट है:
- मैसेज भेजना: पक्का करें कि मैसेज भेज दिए गए हैं.
आपको 201 एचटीटीपी कोड मिलना चाहिए. अगर आप ऐसा नहीं कर रहे हैं :
- अनुमति देने से जुड़ी गड़बड़ियां देखें: अनुमति मिलने पर गड़बड़ी का मैसेज, अनुमति से जुड़ी समस्याओं वाला सेक्शन.
- एपीआई से जुड़ी अन्य गड़बड़ियां: अगर आपको बिना 201 स्टेटस कोड वाला कोई रिस्पॉन्स मिलता है, इसे देखने के लिए, एचटीटीपी स्टेटस कोड समस्या की वजह पर सलाह दी जाएगी.
- मैसेज पाना: अगर मैसेज भेजने में कोई समस्या आ रही है, तो
लेकिन ब्राउज़र पर मैसेज नहीं मिला है:
- एन्क्रिप्ट (सुरक्षित) करने से जुड़ी समस्याओं की जांच करना: पेलोड को एन्क्रिप्ट (सुरक्षित) करने का तरीका देखें समस्या सेक्शन.
- कनेक्शन से जुड़ी समस्याओं की जांच करें: अगर समस्या Chrome में है, तो एक कनेक्शन हो सकता है. कनेक्शन की समस्याओं वाला सेक्शन देखें हमारा वीडियो देखें.
अगर आपको पुश मैसेज और उनसे जुड़े सेक्शन नहीं मिल रहे हैं, तो इस दस्तावेज़ में समस्या को डीबग करने में सहायता नहीं कर रहे हैं तो हो सकता है कि आपको पुश मैकेनिज़्म में बग के बारे में बताता है. इस मामले में, यह देखें गड़बड़ी की रिपोर्ट को बेहतर बनाना सेक्शन में जाकर, गड़बड़ी की एक अच्छी रिपोर्ट फ़ाइल करें. इसमें ऐसी सभी ज़रूरी जानकारी दी गई है जिन्हें जल्द से जल्द प्रोसेस करने के लिए में गड़बड़ी ठीक करने की शुरुआत कर दी है.
शुरू करने से पहले मैं आपको यह बताना चाहूँगी कि Firefox और Mozilla AutoPush Service के बारे में बहुत अच्छे मैसेज हैं. अगर आपको कोई समस्या आती है और को नहीं पता कि समस्या क्या है, तो Firefox में जांच करके देखें कि क्या आपको गड़बड़ी का ज़्यादा मददगार मैसेज मिलेगा.
अनुमति देने से जुड़ी समस्याएं
अनुमति देने से जुड़ी समस्याएं, उन सबसे आम समस्याओं में से एक हैं जिनका सामना डेवलपर को करना पड़ता है वेब पुश की सुविधा की मदद से शुरुआत की जा सकती है. आम तौर पर यह एक समस्या होती है, जो साइट की ऐप्लिकेशन सर्वर कुंजियां (यानी VAPID कुंजियां) .
Firefox और Chrome दोनों में पुश का समर्थन करने का सबसे आसान तरीका यह है कि
subscribe()
कॉल में applicationServerKey
. इसकी कमी यह है कि
आपके फ़्रंट एंड और सर्वर की कुंजियों के बीच किसी भी अंतर होने पर
अनुमति में गड़बड़ी हुई है.
Chrome और FCM पर
Chrome के लिए, जो FCM का उपयोग पुश सेवा के रूप में करता है, आपको
अलग-अलग रेंज के लिए FCM से मिला UnauthorizedRegistration
जवाब
ऐप्लिकेशन सर्वर कुंजियों से जुड़ी सभी गड़बड़ियां.
आपको इनमें से किसी भी काम में UnauthorizedRegistration
गड़बड़ी मिलेगी
स्थितियां:
- अगर आप FCM के अनुरोध में
Authorization
हेडर तय नहीं कर पाते हैं. - उपयोगकर्ता को सदस्यता लेने के लिए इस्तेमाल की गई ऐप्लिकेशन कुंजी, इस्तेमाल की गई कुंजी से मेल नहीं खाती 'ऑथराइज़ेशन हेडर' पर हस्ताक्षर करें.
- आपके JWT में, समयसीमा खत्म होने की तारीख अमान्य है. इसका मतलब है कि समयसीमा, 24 घंटे से ज़्यादा हो गई है या JWT की समयसीमा खत्म हो गई है.
- JWT गलत है या इसकी वैल्यू अमान्य हैं.
गड़बड़ी का पूरा जवाब कुछ ऐसा दिखता है:
<html>
<head>
<title>UnauthorizedRegistration</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>UnauthorizedRegistration</h1>
<h2>Error 400</h2>
</body>
</html>
अगर आपको Chrome में गड़बड़ी का यह मैसेज मिलता है, तो Firefox में जांच करके देखें कि अगर इससे समस्या के बारे में ज़्यादा जानकारी मिलेगी.
Firefox और Mozilla AutoPush
Firefox और Mozilla AutoPush के लिए गड़बड़ी के मैसेज का एक दोस्ताना सेट उपलब्ध कराया जाता है
Authorization
समस्याएं.
आपको गड़बड़ी का Unauthorized
जवाब भी मिलेगा
अगर आपके पुश में Authorization
हेडर शामिल नहीं है, तो Mozilla AutoPush
अनुरोध.
{
"errno": 109,
"message": "Request did not validate missing authorization header",
"code": 401,
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"error": "Unauthorized"
}
अगर आपके JWT में समयसीमा खत्म हो गई है, तो आपको
मैसेज में Unauthorized
गड़बड़ी हुई. इसमें बताया गया कि टोकन में
समयसीमा खत्म हो गई है.
{
"code": 401,
"errno": 109,
"error": "Unauthorized",
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"message": "Request did not validate Invalid bearer token: Auth expired"
}
अगर ऐप्लिकेशन सर्वर कुंजियां, उपयोगकर्ता और
सदस्यता ली गई और अनुमति वाले हेडर पर हस्ताक्षर होने के बाद, Not Found
गड़बड़ी दिखाई जाएगी:
{
"errno": 102,
"message": "Request did not validate invalid token",
"code": 404,
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"error": "Not Found"
}
आखिर में, अगर JWT में कोई अमान्य वैल्यू है (उदाहरण के लिए, अगर "alg" वैल्यू एक अनपेक्षित मान है), तो आपको Mozilla से निम्न गड़बड़ी मिलेगी ऑटोपुश:
{
"code": 401,
"errno": 109,
"error": "Unauthorized",
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"message": "Request did not validate Invalid Authorization Header"
}
एचटीटीपी स्टेटस कोड
कई प्रकार की समस्याएं होती हैं जिनकी वजह से एक नॉन-201 रिस्पॉन्स कोड मिल सकता है. पुश सर्विस. यहां एचटीटीपी स्टेटस कोड की सूची दी गई है. साथ ही, यह भी बताया गया है कि एक-दूसरे से जुड़े उनके क्या मायने हैं वेब पुश करने को कहते हैं.
स्थिति कोड | ब्यौरा |
---|---|
429 | बहुत सारे अनुरोध मिले हैं. आपके ऐप्लिकेशन सर्वर की पुश सर्विस. सेवा से मिले जवाब में 'फिर से कोशिश करें' शामिल होना चाहिए हेडर को यह बताता है कि दूसरा अनुरोध करने में कितने समय लग सकते हैं. |
400 | अनुरोध अमान्य है. आपके हेडर में से कोई एक अमान्य या खराब तरीके से फ़ॉर्मैट किया गया है. |
404 | नहीं मिला. इस स्थिति में आपको PushSubscription को अपने और उपयोगकर्ता को फिर से सदस्यता लेने के मौके का इंतज़ार करना होगा. |
410 | हो गया. सदस्यता अब मान्य नहीं है और इसे आपके खाते से हटा दिया जाना चाहिए बैक एंड. इसे किसी ईमेल पर `सदस्यता छोड़ें()` को कॉल करके दोबारा जनरेट किया जा सकता है `PushSubscription`. |
413 | पेलोड का साइज़ बहुत बड़ा है. पुश सेवा के लिए पेलोड का कम से कम साइज़ 4096 बाइट (या 4kb) की सहायता उपलब्ध है. साइज़ बड़ा करने से यह गड़बड़ी हो सकती है. |
अगर इस सूची में एचटीटीपी स्टेटस कोड नहीं है और गड़बड़ी का मैसेज नहीं है तो वेब पुश प्रोटोकॉल की जांच करें" स्पेसिफ़िकेशन के ज़रिए, यह देखा जा सकता है कि स्टेटस कोड का संदर्भ यह बताने के लिए दिया जाता है कि स्टेटस कोड कब इस्तेमाल नहीं किया जा सकता.
पेलोड एन्क्रिप्ट (सुरक्षित) करने से जुड़ी समस्या
क्या पुश मैसेज (जैसे, किसी वेब पर मैसेज भेजना) को ट्रिगर किया जा सकता है पुश सर्विस और 201 रिस्पॉन्स कोड पाएं) लेकिन पुश इवेंट कभी भी फ़ायर नहीं होता है आपका सर्विस वर्कर, सामान्य रूप से दिखाता है कि ब्राउज़र उसे मिलने वाले मैसेज को डिक्रिप्ट करें.
अगर ऐसा है, तो आपको Firefox के DevTools में गड़बड़ी का मैसेज दिखेगा ठीक है:
यह देखने के लिए कि Chrome में यह समस्या है या नहीं, नीचे दिया गया तरीका अपनाएं:
- about://gcm-internals पर जाएं और "रिकॉर्डिंग शुरू करें" पर क्लिक करें बटन.
- पुश मैसेज ट्रिगर करें और "मैसेज डिक्रिप्ट करने का फ़ेलियर लॉग" देखें.
अगर पेलोड के डिक्रिप्शन में कोई समस्या है, तो आपको गड़बड़ी का मैसेज दिखेगा
जैसा ऊपर बताया गया है. (AES-GCM decryption failed
पर ध्यान दें
मैसेज देखें.)
अगर आपकी समस्या है, तो कुछ ऐसे टूल हैं जो एन्क्रिप्शन को डीबग करने में आपकी मदद कर सकते हैं:
- पीटर बेवरलू का पुश एन्क्रिप्शन पुष्टि करने वाला टूल.
- वेब पुश: Mozilla का डेटा एन्क्रिप्ट (सुरक्षित) करने का टेस्ट पेज
कनेक्शन की समस्या
अगर आपको अपने सर्विस वर्कर में कोई पुश इवेंट नहीं मिल रहा है और आपको तो ब्राउज़र उससे कनेक्ट करने में विफल हो सकता है पुश सेवा का इस्तेमाल किया जाता है.
Chrome में, ऐप्लिकेशन की जांच करके यह पता लगाया जा सकता है कि ब्राउज़र को मैसेज मिल रहे हैं या नहीं
'मैसेज लॉग पाएं' about://gcm-internals
में (sic).
अगर आपको मैसेज सही समय पर नहीं दिखता, तो पक्का करें कि
आपके ब्राउज़र की कनेक्शन स्थिति CONNECTED
है:
अगर वह 'कनेक्ट नहीं है' नहीं है, तो आपको अपनी मौजूदा प्रोफ़ाइल मिटानी होगी और नया बनाएं. अगर ऐसा है, तो अब भी समस्या का समाधान नहीं हुआ है, तो कृपया नीचे दिए गए सुझाव के हिसाब से गड़बड़ी की रिपोर्ट सबमिट करें.
गड़बड़ी की रिपोर्ट ठीक की जा रही हैं
अगर ऊपर दिए गए किसी भी तरीके से आपकी समस्या हल नहीं होती है और आपको इस बारे में कोई जानकारी नहीं है कि समस्या हो सकती है, तो कृपया उस ब्राउज़र के ख़िलाफ़ समस्या दर्ज करें जिसमें आपके पास इससे जुड़ी समस्या:
Chrome के लिए, आपको यहां समस्या बतानी है: https://bugs.chromium.org/p/chromium/issues/list Firefox के लिए, आपको यह समस्या यहां उठानी चाहिए: https://bugzilla.mozilla.org/
एक अच्छी गड़बड़ी की रिपोर्ट देने के लिए, आपको नीचे दी गई जानकारी देनी होगी:
- वे ब्राउज़र जिन पर आपने परीक्षण किया है (उदा. Chrome वर्शन 50, Chrome वर्शन 51, Firefox वर्शन 50, Firefox के 51 वर्शन).
PushSubscription
का उदाहरण, जो समस्या को दिखाता है.- उदाहरण के तौर पर किसी भी अनुरोध को शामिल करें (जैसे, पुश के लिए किए गए नेटवर्क अनुरोधों का कॉन्टेंट सेवा, जिसमें हेडर भी शामिल हैं).
- उदाहरण के तौर पर, नेटवर्क के अनुरोधों से मिले जवाब भी शामिल करें.
अगर आप फिर से जनरेट किया जा सकने वाला उदाहरण दे सकते हैं, तो सोर्स कोड या होस्ट किया गया वेब तो समस्या का पता लगाकर उसे हल किया जा सकता है.
आगे कहां जाना है
- वेब पर मिले पुश नोटिफ़िकेशन के बारे में खास जानकारी
- पुश के काम करने का तरीका
- किसी उपयोगकर्ता की सदस्यता लेना
- उपयोगकर्ता अनुभव से जुड़ी अनुमति
- वेब पुश लाइब्रेरी की मदद से मैसेज भेजना
- वेब पुश प्रोटोकॉल
- पुश इवेंट को मैनेज करना
- सूचना दिखाना
- सूचना किस तरह की है
- सूचना के सामान्य पैटर्न
- पुश नोटिफ़िकेशन के बारे में अक्सर पूछे जाने वाले सवाल
- सामान्य समस्याएं और गड़बड़ियों की शिकायत करना