La connessione al servizio di notifica push di Apple, tramite proxy, è scaduta con stream_socket_client

Sto cercando di connettere l'APNS, ma ho bisogno di passare attraverso un proxy, qui il codice di test della connessione:

if (!extension_loaded('openssl')) { exit("need openssl"); } $http = arrays(); $http['http']['proxy'] = 'tcp://proxy.net:8080'; $http['http']['request_fulluri'] = true; $ssl = arrays(); $ssl['ssl']['local_cert'] = 'ck.pem'; $ssl['ssl']['passphrase'] = 'passphrase'; $opts = arrays_merge($http,$ssl); $context = stream_context_create($opts); $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $context); if (!$fp) exit("Failed to connect: $err $errstr" . PHP_EOL); echo 'Connected to APNS' . PHP_EOL; 

Il problema è che ho sempre un errore di timeout, come se effettuassi una connessione diretta al gateway Apple, come se fossero state rispettate le opzioni in stream_context_creat.

OpenSSL e supporto socket sono abilitati e la port 2195 è aperta.

Qualche idea?

Modifica 1:

Cercando di connettersi al proxy funziona solo

 $fp = stream_socket_client('tcp://proxy-dmz.pgol.net:8080', $err, $errstr, 60, STREAM_CLIENT_CONNECT); if (!$fp) exit("Failed to connect: $err $errstr" . PHP_EOL); echo 'Connected!' . PHP_EOL; 

Modifica 2:

E una sceneggiatura come questa (trovata in qualche forum) sembra funzionare … sono bloccato

 $ip = "tcp://proxy.net"; // proxy IP $port = "8080"; // proxy port $url = "http://search.yahoo.com/search?p=test"; $request = "GET $url HTTP/1.0\r\nHost:www.yahoo.com:80\r\n\r\n"; $fp = fsockopen($ip,$port); // connect to proxy fputs($fp, $request); $data=""; while (!feof($fp)) $data.=fgets($fp,64000); fclose($fp); print $data;