Как отправить 1000 push-уведомлений одновременно на устройства ios без использования цикла в php

0

Как внедрить ниже код для отправки 1000 push-уведомлений одновременно с сервером ios deivce с помощью php.

 function push_iphone($deviceTokenid,$message){
            $passphrase = '12345';
            $ctx = stream_context_create();
            stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
            stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
            $fp = stream_socket_client(
            'ssl://gateway.sandbox.push.apple.com:2195', $err,
            $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
            if (!$fp)
            return false;
            echo 'Connected to APNS' . PHP_EOL;
            // Create the payload body
            $body['aps'] = array(
            'alert' => $message,
            'message' => $message,
            'sound' => 'default',
            'flag' => '0'
            );
            // Encode the payload as JSON
            $payload = json_encode($body);
            //echo $device_token_id;
            // Build the binary notification
            $msg = chr(0) . pack('n', 32) . pack('H*', $deviceTokenid) . pack('n', strlen($payload)) . $payload;
            // Send it to the server
            $result = fwrite($fp, $msg, strlen($msg));
            if(!$result){
                echo "tst";
                return true;
            }else{ echo "test ";
                return false;
            }
            fclose($fp); 
        }

Может ли кто-нибудь помочь мне в этом.

  • 0
    Почему так важно отправлять их в одно и то же время? Вы можете сделать это с помощью многопоточности, но даже при 1000 невозможно одновременно (акцент на точно)
Теги:
push-notification

1 ответ

0

Apple ответила на это в своей документации:

Вы можете установить несколько подключений к одному шлюзу или нескольким экземплярам шлюза. Если вам нужно отправить большое количество удаленных уведомлений, распространите их по соединениям с несколькими разными шлюзами. Это повышает производительность по сравнению с использованием одного соединения: оно позволяет быстрее отправлять удаленные уведомления и позволяет APN быстрее доставлять их.

Хранить соединения с APN в нескольких уведомлениях; dont несколько раз открывать и закрывать соединения. APN рассматривает быстрое соединение и разъединение как атаку отказа в обслуживании. Вы должны оставить соединение открытым, если не знаете, что он будет простаивать в течение длительного периода времени, например, если вы только отправляете уведомления своим пользователям один раз в день, нормально использовать новое соединение каждый день.

Поигрывая ваше приложение php, вы можете достичь этого (почти) в одно и то же время. Взгляните на шаблоны для многопроцессорных процессов PHP? для направления, которое требуется для настройки вилок.

  • 0
    Пожалуйста, не могли бы вы предоставить мне код, как мое требование.
  • 0
    @SandeepVishwakarma Я не собираюсь писать ваше заявление для вас. Сначала попробуй что-нибудь для себя. Если проблемы возникают из-за ваших попыток, напишите новый вопрос.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню