Сервер push-уведомлений iPhone: что делать после замены сервера? - PullRequest
0 голосов
/ 17 ноября 2010

Мне удалось внедрить сервер push-уведомлений (PHP) для iPhone в прошлом году;Мне пришлось сменить сервер, и я подумал, что перемещения файлов достаточно ... Я был не прав, так как уведомления об изменениях больше не отправляются.Там нет ошибки, все кажется нормально, но уведомление не получено.

Ниже приведен код моего сервера;Кто-нибудь может придумать причину или способ найти проблему?(примечания: переменная $ deviceTokens верна, содержит токены устройства, и я успешно протестировал свой сертификат .pem с помощью команды openssl).

    $payload['aps'] = array('alert' => 'notification!!', 'sound' => 'push.aif');
    $payload = json_encode($payload);

    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', 'libraries/ck_prod.pem');
    $apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:' . 2195, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

    if($error) {
        log_message('error', $errorString);
        return;
    }

    log_message('debug', 'sending push notification...');

    if($apns) {
        foreach($deviceTokens as $deviceToken) {
            $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
            fwrite($apns, $apnsMessage);
        }
        fclose($apns);
    } else {
        log_message('error', 'error while sending push notification');
    }

1 Ответ

0 голосов
/ 19 ноября 2010

Ну, хорошо ... Возможно, мне следовало заметить, что я связывался с тестовым сервером (шлюз. песочница .push.apple.com) ... Некоторые дни просто трудны ...

...