से पूछने के लिए PHP तकनीक क्या कोई स्पष्टीकरण दे सकता है कि एपीएन (ऐप्पल पुश अधिसूचना) क्या चाहता है कि आप इसे कैसे पूछें?एपीएन फीडबैक सर्वर
दस्तावेज़ कहते हैं कि कनेक्शन जल्द ही भेजना शुरू हो जाता है। क्या इसका मतलब यह है कि मैं fread()
पर ऐसा नहीं करता?
यह मेरा वर्तमान कोड है और इसे पढ़ने के लिए यहां है। मैंने fread()
को लूप में नहीं रखा क्योंकि मुझे नहीं पता कि कौन सी प्रतिक्रिया "पढ़ने के लिए और रिकॉर्ड नहीं" इंगित करती है और मैं अपने सर्वर पर एक अनंत लूप नहीं चाहता था।
<?php
$apnsCert = 'HOHRO-prod.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'verify_peer', false);
$apns = stream_socket_client('ssl://feedback.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
echo 'error=' . $error;
echo 'errorString=' . $errorString;
$result = fread($apns, 38);
echo 'result=' . $result;
fclose($apns);
?>
अब तक मुझे जो कुछ मिल रहा है वह एक शून्य उत्तर है। कोई त्रुटि नहीं है इसलिए यह कनेक्ट हो रहा है।
मुझे नहीं पता कि शून्य उत्तर का मतलब है कि कोई डेटा नहीं है, या मेरा fread()
ऐसा करने का गलत तरीका है।
धन्यवाद
आज मैंने पाया कि fread() APN के प्रतिक्रिया वास्तविक प्रतिक्रिया जब तक कचरा डेटा भेजता है क्योंकि काम नहीं करेगा। इससे असफल होने का कारण बनता है, क्योंकि यह शून्य/खाली डेटा पढ़ रहा है। जैसा कि gw1921 नीचे उल्लेखित है, आपको स्ट्रॉन (फीड ($ apns, 38) तक feof() पर लूप होना चाहिए। उस बिंदु से, आपके पास वैध प्रतिक्रिया होगी। फिर, डेटा को अनपैक करें क्योंकि नीचे बी ने सुझाव दिया है। (एक और गंदा गॉचा: अनइंस्टॉल किया गया ऐप फीडबैक उत्पन्न नहीं करेगा जब तक कि आपके पास एक ही एपीएस-पर्यावरण के साथ डिवाइस पर कोई अन्य ऐप न हो। इसलिए आपको अनइंस्टॉल किए गए एक को प्रतिक्रिया को पॉप्युलेट करने के लिए अपने डिवाइस पर 2 पुश-सक्षम सैंडबॉक्स ऐप्स की आवश्यकता है।) – brack
यहां तक कि मेरे पास एक समान कोड है और मैं भी फ्रेड से शून्य हो जाता हूं। सुनिश्चित नहीं है कि मेरा कोड वास्तव में काम कर रहा है और एपीएनएस एक पूर्ण उत्तर भेज रहा है या बस कुछ गुम है। मुझे यकीन है कि एपीएनएस से मेरा कनेक्शन सफल है। मैंने अपने आवेदन को कुछ 5-10 उपकरणों पर स्थापित किया था और कुछ अलर्ट भेज दिए थे और फिर एप्लिकेशन से कुछ अनइंस्टॉल किया था और फिर अलर्ट भेजना शुरू कर दिया था ताकि एपीएनएस फीडबैक सर्वर हमें बताएगा कि यह कुछ उपकरणों को वितरित करने में विफल रहा है। मुझे फ्रेड() में रिक्त स्थान के अलावा कुछ भी नहीं मिला है :-(यदि आपने कुछ अलग किया है और इसे काम कर लिया है तो कृपया मुझे बताएं। – Anish
क्या आपने "पुशुटिल" का उपयोग किया है? एक बार जब आप इसे समझ लेंगे, तो यह एक तेज़ तरीका है फीडबैक सर्वर की जांच करने के लिए। यह एक मैक ओएस एक्स यूटिलिटी है जिसे आप संकलित करते हैं और फिर यूनिक्स कमांड लाइन से चलाते हैं। Google एरिका सदन - यह पुश के तहत अपनी साइट पर है। –