Conexão do serviço de notificação Apple Push, através do proxy, expirou com stream_socket_client

Estou tentando conectar APNS, mas preciso passar por um proxy, aqui o código de teste de conexão:

if (!extension_loaded('openssl')) { exit("need openssl"); } $http = array(); $http['http']['proxy'] = 'tcp://proxy.net:8080'; $http['http']['request_fulluri'] = true; $ssl = array(); $ssl['ssl']['local_cert'] = 'ck.pem'; $ssl['ssl']['passphrase'] = 'passphrase'; $opts = array_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; 

O problema é que eu sempre tive um erro de tempo limite, como se eu fizesse uma conexão direta com o gateway da Apple, como se as opções no stream_context_creat estivessem satisfeitas.

O suporte OpenSSL e Socket está ativado e a porta 2195 está aberta.

Alguma ideia?

Editar 1:

Ao tentar se conectar ao proxy, só funciona

 $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; 

Editar 2:

E um script como esse (encontrado em algum fórum) parece funcionar … estou preso

 $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;