[英]How to send 1000 push notification at same time to ios devices without using the loop in php
如何在下面的代码中使用 php 向 ios 设备同时发送 1000 个推送通知。
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);
}
任何机构都可以帮助我。
苹果在他们的文档中对此有一个答案:
您可以建立到同一个网关或多个网关实例的多个连接。 如果您需要发送大量远程通知,请将它们分散到多个不同网关的连接上。 与使用单个连接相比,这提高了性能:它可以让您更快地发送远程通知,并且可以让 APN 更快地传递它们。
在多个通知中保持与 APNs 的连接; 不要反复打开和关闭连接。 APNs 将快速连接和断开连接视为拒绝服务攻击。 您应该保持连接打开,除非您知道它会在很长一段时间内处于空闲状态——例如,如果您每天只向用户发送一次通知,则可以每天使用一个新连接。
通过线程化您的 php 应用程序,您可以(几乎)同时实现这一点。 看看PHP 多进程的模式? 用于设置分叉的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.