Как внедрить ниже код для отправки 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);
}
Может ли кто-нибудь помочь мне в этом.
Apple ответила на это в своей документации:
Вы можете установить несколько подключений к одному шлюзу или нескольким экземплярам шлюза. Если вам нужно отправить большое количество удаленных уведомлений, распространите их по соединениям с несколькими разными шлюзами. Это повышает производительность по сравнению с использованием одного соединения: оно позволяет быстрее отправлять удаленные уведомления и позволяет APN быстрее доставлять их.
Хранить соединения с APN в нескольких уведомлениях; dont несколько раз открывать и закрывать соединения. APN рассматривает быстрое соединение и разъединение как атаку отказа в обслуживании. Вы должны оставить соединение открытым, если не знаете, что он будет простаивать в течение длительного периода времени, например, если вы только отправляете уведомления своим пользователям один раз в день, нормально использовать новое соединение каждый день.
Поигрывая ваше приложение php, вы можете достичь этого (почти) в одно и то же время. Взгляните на шаблоны для многопроцессорных процессов PHP? для направления, которое требуется для настройки вилок.