2012-12-19 13 views
6

मुझे आईओएस उपकरणों को पुश अधिसूचना भेजनी है। प्रॉक्सी के माध्यम से मेरा कनेक्शन सक्षम होना चाहिए। मैंने सफलता के बिना सब कुछ करने की कोशिश की। मुझे एक त्रुटि 110 कनेक्शन का समय समाप्त हो गया है। यह कर्ल के साथ काम कर रहा है अगर मैं सिर्फ ऐप्पल पुश के पते से कनेक्ट करने का प्रयास करता हूं। मुझे नहीं पता कि समस्या कहां है। प्रॉक्सी कॉन्फ़िगरेशन? PHP stream_context गलत कार्यान्वयन?प्रॉक्सी और stream_context के साथ ऐप्पल पुश

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'local_cert', 'certificate.pem'); 
stream_context_set_option($ctx, 'ssl', 'passphrase', 'my_passphrase'); 
stream_context_set_option($ctx, 'ssl', 'verify_peer', false); 
stream_context_set_option($ctx, 'http', 'proxy', 'tcp://my-proxy.net:8080'); 
stream_context_set_option($ctx, 'http', 'request_fulluri', true); 

$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
var_dump($fp); 
var_dump($err); 
var_dump($errstr); 
exit; 

आप एक विचार है:

यहाँ मेरी कोड है?

संपादित करें:

यह सीधे विद्रूप से जोड़ा जा सकता है? मुझे बस पता चला कि प्रॉक्सी स्क्विड के साथ चल रहा है। मैं फ़ंक्शन के बजाय stream_socket_client() के बजाय भी प्रयास करता हूं लेकिन ऐसा लगता है कि यह एसएसएल प्रोटोकॉल की अनुमति नहीं देता है।

यहाँ मेरी var_dump आउटपुट है: bool (गलत) पूर्णांक (110) स्ट्रिंग (20) "कनेक्शन का समय समाप्त"

मैं भी इस चेतावनी: चेतावनी: stream_socket_client(): ssl कनेक्ट करने में असमर्थ: //gateway.sandbox.push.apple.com39195 (कनेक्शन का समय समाप्त हुआ) /share/www/website/test.php लाइन 22

+0

क्या हम उन var_dump आउटपुट को देख सकते हैं? –

+0

@ EduardMoldován हाँ यह किया गया है – Pierre

+0

यहां कोई मदद: http://stackoverflow.com/questions/6372308/apns-ssl-gateway-sandbox-push-apple-com2195- कनेक्शन- फ़ाइल्स? क्या आपके आईएसपी बंदरगाह को अवरुद्ध करने का कोई मौका है? या अपना खुद का राउटर? –

उत्तर

1

यह आपकी प्रॉक्सी हो सकती है पोर्ट 2195 को खोला नहीं जा सकता ।

iPhone Push Notification Unable to Connect to the SSL Server

मुझे लगता है कि आप या तो:

  • लोग यदि पोर्ट 2195 खुला है या नहीं है, जो प्रॉक्सी चलाने को देखने के लिए बात करने के लिए की आवश्यकता है।

या

  • सेटअप एक परीक्षण सर्वर पोर्ट 2195 पर सुन और फिर प्रॉक्सी के माध्यम से इसे करने के लिए एक परीक्षण कनेक्शन करने की कोशिश। यह आपको जांचने की अनुमति दे सकता है कि यह प्रॉक्सी है जो कनेक्शन अनुरोधों को अवरुद्ध कर रहा है।

या

  • टेस्ट कर्ल एक प्रॉक्सी का उपयोग कनेक्शन खोल सकते हैं या नहीं।

कौन सा विकल्प की स्थापना द्वारा किया जाता है:

// sets the proxy to go through 
curl_setopt($ch, CURLOPT_PROXY, $proxy); 
// sets to use a tunnel proxy which most http proxies are 
curl_setopt($ch, CURLOPT_HTTPTUNNELPROXY, $proxy); 

पूर्ण परीक्षण कोड here

+0

नहीं, बंदरगाह 21 9 5 और 21 9 6 खुले हैं। अगर मैं fopen() का उपयोग करता हूं तो मैं https – Pierre

+0

के माध्यम से एक ऐप्पल कनेक्शन लॉग कर सकता हूं बस जांचने के लिए, आपका मतलब कुछ काम करता है? यानी आपके द्वारा बनाए गए संदर्भ के साथ fopen? fopen ('http://gateway.sandbox.push.apple.com39195', "आर", झूठी, $ सीटीएक्स); – Danack

+0

हम नहीं हैं: "स्ट्रीम खोलने में विफल" – Pierre

0
  • APN के
  • से कनेक्ट करने के एसएसएल संदर्भ
  • प्रॉक्सी प्रॉक्सी को
  • भेजने अनुरोध करने के लिए TCP सॉकेट खोलने बनाने के एक बार कनेक्शन

एक नज़र SSL को सक्षम स्वीकार किया जाता है इस पोस्ट में मेरे जवाब पर: Send Push Notification to APNS through proxy

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