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-Zertifikatsdatei befindet sich im selben Verzeichnis wie die Datei. Dieser Code läuft auf meinem lokalen Computer einwandfrei. Ich verwende 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/appointmentportal/iosapp/SimplePush/simplepush.php auf Zeile 14 fehlgeschlagen: 111 Verbindung abgelehnt
Wenn die Zertifikatsdatei falsch ist, wie würde sie auf meinem lokalen Server funktionieren?
Ich komm da nicht raus. Könnt ihr mir helfen?
Ich glaube, Sie sollten dies durchgehen: stackoverflow.com/a/16274256/362310
– Vaibhav Saran
29. Apr. ’13 um 8:32
ist dein Problem gelöst?
– Rajneesh071
15. Juni ’13 um 10:03