iOS Многократные push-уведомления с использованием php-кода отправляются не на все устройства - PullRequest
0 голосов
/ 31 октября 2018

Я использую push-уведомления ios. Все сертификаты созданы правильно. Уведомления идут с использованием кода php сервера: -

$deviceTokens; // This is an array which has all tokens
$passphrase; // This is my passphrase

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'iOSPushNotificationCertificate.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
stream_context_set_option($ctx, 'ssl', 'cafile', 'entrust_2048_ca.cer');
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

$body; // This is my notification data body

$payload = json_encode($body);

for($i = 0; $i < sizeof($arr); $i++) {

    $msg = chr(0) . pack('n', 32) . pack('H*', $arr[$i]) . pack('n', strlen($payload)) . $payload;

    $result = fwrite($fp, $msg, strlen($msg));

    echo $result;

}

fclose($fp);

Код echo $ result дает мне целочисленные значения для всех хороших или плохих токенов.

Когда все токены исправны, все устройства получают уведомления. Но проблема в том, что если один токен между ними устарел или устарел, или что-то в этом роде, то все уведомления после этого токена не отправляются. Цикл for выполняется для всех токенов, но уведомления идут только для токенов, которые находятся перед плохим токеном. Что можно сделать?

1 Ответ

0 голосов
/ 20 ноября 2018

После многих усилий я обнаружил, что идет не так. Один токен, который устарел или о котором я говорил в моем вопросе, это токен, сгенерированный сертификатами APN разработки (может быть, во время разработки был вызван URL-адрес дистрибутива и сохранен токен разработки на сервере), все остальные токены сгенерированы из сертификатов дистрибутива. , Таким образом, если вы отправляете один токен разработки между токенами распространения, сервер Apple закрывает соединение с нашим сервером, а другие токены, которые после этого токена разработки не обрабатываются. Никогда не смешивайте токены разработки и распространения. Благодарю вас.

...