Улучшенное push-уведомление Apple: ошибка ответа на сервере провайдера - PullRequest
0 голосов
/ 19 ноября 2010

Я работаю над проектом на PHP, который требует, чтобы я отправил уведомление о предупреждении на сервер APNS.Я использовал расширенный формат push-уведомлений.но я не получаю ответ, как указано в документах APNS.Я получаю ответ из трех цифр, обычно 133, 132, 154, 138 и т. Д. Я пришел к выводу, что это признаки статуса, например.133 - 1, 3, 3. но теперь я также получил 139. поэтому я сомневаюсь, что мое толкование ответа неверно.Но я не понимаю, где это неправильно.И важно то, что, хотя я получаю эти ответы, оповещение выдвигается, и я получаю уведомления на своем iPhone, а также на iPad.

Мой код выглядит следующим образом:

$payload['aps'] = array('alert' => $message, 'badge' => 1, 'sound' => 'default');

$apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195; // default port

$apnsCert = 'apns-dev.pem'; // APNS crtificate.

$passPhrase = '';

$streamContext = stream_context_create();

stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

stream_context_set_option($streamContext, 'ssl', 'passphrase', $passPhrase);

try{

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);

if (!$apns) {
    print "Failed to connect {$error} {$errorString}\n";
}
else {   
    // Sending the payload

    $apnsMessage = chr(0) . pack('n', 1) . pack('n', $nid) . pack('n', time() + 604800) . pack('n', 32) . pack('H*', str_replace(' ', '', $alert_device_token)) .  pack('n', strlen($payload)) . $payload;

    echo 'APNS Message: ' . $apnsMessage;

    $fwrite = fwrite($apns, $apnsMessage);

    echo 'APNS response: ' . $fwrite;

Икогда это выполнено, я получил следующий ответ, напечатанный в браузере:

APNS Сообщение:"alert": "Ваша цена предупреждения EUR \ / USD SELL достигнута!", "badge": 1, "sound": "default"}} Ответ APNS: 139

Может кто-нибудь, пожалуйстаскажите мне, что это значит здесь 139я делаю что-то не так здесь.

1 Ответ

1 голос
/ 23 декабря 2010

Повторяющееся «139» - это возвращаемое значение fwrite (). Это число байтов, записанных функцией fwrite ()

См .: PHP: fwrite

...