苹果推送通知服务PHP cpu使用率过高.如何提高绩效


Apple Push Notification service PHP cpu usage too high. how can I Improve performance?

我的任务是向多个用户发送推送通知,这与以下功能工作良好

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。

我能以某种方式提高性能吗?还是缺少了什么?

谢谢

你与苹果建立了太多的联系,如果你这样做,他们可能会阻止你。

我怀疑与每条消息的连接的创建和拆除也是你在那里的慢点!

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

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

或者,您可以使用apns-php免费完成

http://code.google.com/p/apns-php/

  • 一个很好用的APNS类,你可以把一堆消息排队,然后一次发送。

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