Как выполнить приведенный ниже код для отправки 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 открытыми через несколько уведомлений;
не многократно открывать и закрывать соединения. APNs лечит быстро
подключение и отключение как атака типа «отказ в обслуживании». Вам следует
оставьте соединение открытым, если только вы не знаете, что оно простаивает
расширенный период времени — например, если вы отправляете уведомления только
ваши пользователи один раз в день, можно использовать новое соединение каждый день.
Пропуская ваше php-приложение, вы можете достичь этого (почти) одновременно. Взгляни на Шаблоны для нескольких процессов PHP? для направления, которое нужно для настройки вилок.
Других решений пока нет …