Apple推送通知服务PHP cpu使用率过高。如何提高性能?

Apple推送通知服务PHP cpu使用率过高。如何提高性能?,php,apple-push-notifications,Php,Apple Push Notifications,我的任务是向多个用户发送推送通知,这可以很好地使用以下功能 function push_to_apns_badge($token_array) { $apnsHost = 'gateway.sandbox.push.apple.com'; $apnsPort = 2195; $pem_path = MODULE_DIR.'push_notification'.DIRECTORY_SEPARATOR; $apnsCert = $pem_path.'apns-dev

我的任务是向多个用户发送推送通知,这可以很好地使用以下功能

function push_to_apns_badge($token_array)
{
    $apnsHost = 'gateway.sandbox.push.apple.com';
    $apnsPort = 2195;
    $pem_path  = MODULE_DIR.'push_notification'.DIRECTORY_SEPARATOR;
    $apnsCert = $pem_path.'apns-dev.pem';

    if(is_array($token_array) && count($token_array))
    {       
        foreach ($token_array as $token)
        {
            $streamContext = stream_context_create();
            stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

            $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
            $badge_count = (int)$token['badge'];
            $payload = get_payload_badge($badge_count);

            $apnsMessage = get_one_message_to_write_badge($token['token'],$payload);
            $wrt = fwrite($apns, $apnsMessage); 

            $_error_str .= " $error $errorString ";
            socket_close($apns);
            fclose($apns);
        }
    }   
    return array(true,$_error_str); 
}
但是它会占用太多的cpu

我能以某种方式提高绩效吗?还是有什么东西不见了


谢谢

你与苹果的连接太多了,如果你这样做,他们可能会阻止你

我怀疑创建和删除每条消息的连接也是你的慢点

苹果公司建议你打开一个连接,发送你的信息,让它尽可能长时间地打开,并在同一个连接上发送未来的信息


你可能想看看Urban Airship,它每月将免费发送100万条信息?

你与苹果的连接太多,如果你这样做,他们可能会阻止你

我怀疑创建和删除每条消息的连接也是你的慢点

苹果公司建议你打开一个连接,发送你的信息,让它尽可能长时间地打开,并在同一个连接上发送未来的信息


你可能想看看城市飞艇,它每月将免费发送100万条信息?

或者,你可以使用apns php免费发送

  • 一个很好的易于使用的APNS类,您可以将一堆消息排队,然后使用它立即发送消息

我的客户目前为UA支付了一大笔钱,我们正在远离他们。

或者,您可以使用apns php免费完成这项工作

  • 一个很好的易于使用的APNS类,您可以将一堆消息排队,然后使用它立即发送消息

我的客户目前为UA支付了一大笔钱,而我们正在远离他们。

这是最终用于live还是仅用于测试?苹果不会喜欢你打开和关闭APNS服务器的大量连接。你需要保持连接打开!你看过城市飞艇吗?是现场直播的。感谢您的回复。这是用于现场测试还是仅用于测试?苹果不会喜欢你打开和关闭APNS服务器的大量连接。你需要保持连接打开!你看过城市飞艇吗?是现场直播的。谢谢你的回复。