APN-PHP-Code mit Warnung: stream_socket_client () [function.stream-socket-client]: Verbindung zu ssl: //gateway.sandbox.push.apple.com: 2195 nicht möglich
Ich versuche, Apple Push Notification mit PHP-Code zu implementieren. Hier ist mein Code
$deviceToken = 'My device token';
$passphrase = '';
$message = 'My first push notification!';
////////////////////////////////////////////////////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'apns-dev-cert.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 120, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' . PHP_EOL;
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
$result = fwrite($fp, $msg, strlen($msg));
if (!$result)
echo 'Message not delivered' . PHP_EOL;
else
echo 'Message successfully delivered' . PHP_EOL;
fclose($fp);
Die PEM-Zertifikatdatei befindet sich im selben Verzeichnis wie die Datei. Dieser Code läuft einwandfrei auf meinem lokalen Rechner. Ich benutze MAMP. Ich erhalte eine Benachrichtigung auf meinen Geräten.
Aber wenn ich es auf dem Server versuche, funktioniert es nicht und gibt einen Fehler aus.
Warnung: stream_socket_client () [function.stream-socket-client]: Keine Verbindung zu ssl: //gateway.sandbox.push.apple.com: 2195 (Verbindung abgelehnt) in / home / nextgen / public_html / ApplicationGenerator / arrangementportal / iosapp / SimplePush / simplepush.php in Zeile 14 Verbindung fehlgeschlagen: 111 Verbindung abgelehnt
Wenn die Zertifikatdatei falsch ist, wie würde es auf meinem lokalen Server funktionieren?
Daraus komme ich nicht heraus. Könnt ihr mir helfen?