繁体   English   中英

如何在不使用php循环的情况下同时向ios设备发送1000条推送通知

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM