ios notifications Push ne fonctionne pas sur le serveur

J'ai testé une notification push sur ma machine locale, il fonctionne parfaitement. J'ai ensuite téléchargé mes fichiers vers le serveur réel avec le même certificat (".pem" fichier), et je vous assurer que les ports 2195 et 2196 sont ouverts.

J'ai testé:

telnet gateway.sandbox.push.apple.com 2195

Qu'il travaille...

root@server ~ # telnet gateway.sandbox.push.apple.com 2195

Trying 17.149.34.54...

Connected to gateway.sandbox.push.apple.com.

Escape character is '^]'.

Mais quand je test à partir de mon script php, il retourne:

Avertissement: stream_socket_client() [function.stream-socket-client]:
impossible de se connecter à ssl://passerelle.bac à sable.push.apple.com:2195
(Connection timed out)

Avertissement: stream_socket_client() [function.stream-socket-client]:
impossible de se connecter à ssl://feedback.bac à sable.push.apple.com:2196

Des suggestions?


C'est le code php:

$ctx = stream_context_create(); 

stream_context_set_option($ctx, 'ssl', 'local_cert',
   "path/to/certificate"); 

$fp = stream_socket_client("ssl://gateway.push.apple.com:2195",
   $error, $errorString, 100,
   (STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT), $ctx);
S'il vous plaît montrer l'ensemble de votre code PHP...
$ctx = fonction stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', "chemin/vers/le certificat"); $fp = stream_socket_client("chemin/vers/le certificat", $erreur, $errorString, 100, (STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT), $ctx);
Il est préférable de l'ajouter à votre question, il suffit de modifier.
j'ai ajouté le bon code php dans la question

OriginalL'auteur yasserislam | 2012-01-24