Tuesday 15 May 2012

javascript - Success callback for Azure mobile services `push.apns.send` -


push.apns.send विधि सफलता कॉलबैक को कॉल नहीं करता है। इसलिए सफल निष्पादन के मामले में हम यह निर्धारित नहीं कर सकते हैं कि यह ऑपरेशन कब पूरा किया गया था।

यहां मेरा कोड है (यह एक सर्वर साइड स्क्रिप्ट का एक हिस्सा है जो उस डेटा टेबल में से एक के लिए सम्मिलित होने की घटना पर चलता है):

  push.apns.send (message.deviceToken, {alert: message.alert, बैज: message.badge, ध्वनि: message.sound, पेलोड: {message: message.alert, appID: Message.appID}}, {सफलता: कार्य (resp) {console.log (resp)}, त्रुटि: फ़ंक्शन (त्रुटि) {console.error (err)}})   

< कोड> त्रुटि कॉलबैक काम करता है उदाहरण के लिए जब मैं अमान्य deviceToken पास करता हूं, तो मुझे लॉग में त्रुटि संदेश दिखाई दे सकता है लेकिन सफल निष्पादन के मामले में लॉग में कुछ भी नहीं है। ऐसा लगता है कि यह सफलता कॉलबैक को बिल्कुल भी नहीं बुलाता है।

यह इस उदाहरण में नहीं दिखाया गया है, लेकिन मेरे मामले में मुझे सफलता कॉलबैक की आवश्यकता है रिकॉर्ड की स्थिति को बदलने और इसे बचाने के लिए।

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

इसलिए, यह देखते हुए कि कॉल करने वाला कॉलर को कोई भी विश्वसनीय तरीका नहीं है, यह पुश सफल हो गया, टीम ने फैसला किया कि यह नहीं है सफलता कॉलबैक जोड़ने के लिए समझें (जो गलत असर डालती है कि धक्का सफल होता है)।

एक अनुमानी जिसे आप उपयोग करना चाह सकते हैं, पहले धक्का भेजना है, तो कुछ समय के लिए प्रतीक्षा करें ( setTimeout ), और अगर त्रुटि कॉलबैक लागू नहीं किया जाता है, तो आप मानते हैं कि पुश सफल था ध्यान दें कि जैसा कि मैंने ऊपर उल्लेख किया है, यह 100% सही नहीं है, लेकिन यह आपके परिदृश्य के लिए पर्याप्त हो सकता है।

No comments:

Post a Comment