苹果推送通知网关连接,未收到通知

问题描述:

我从iOS应用程序发送很多次通知。为此,我使用APNS-PHP库将它从服务器发送到Apple推送通知网关。苹果推送通知网关连接,未收到通知

这是代码。

public function publishAPush($requestBody){ 

    try { 

     $toUserId=$requestBody->{KEY_USERID}; 
     $toUserType=$requestBody->{KEY_USERTYPE}; 


     $soundFileName=$requestBody->{"sound"}; 
     $badge=$requestBody->{"badge"}; 
     $customMessage=$requestBody->{"custom"}; 
     $alertMesssage=$requestBody->{"alert"}; 
     if(!empty ($toUserId)){ 
       $push = new ApnsPHP_Push(
            ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, 
            'file.pem'); 

       // Set the Root Certificate Autority to verify the Apple remote peer 
       $push->setRootCertificationAuthority('entrust_root_certification_authority.pem'); 
       // Connect to the Apple Push Notification Service 
       $push->connect(); 
       // Instantiate a new Message with a single recipient 
       $message = new ApnsPHP_Message($deviceToken); 
       // Set badge icon to "3" 
       $message->setBadge($badgeCount); 
       // Set a simple welcome text 
       $message->setText($alertMesssage); 
       // Play the default sound 
       $message->setSound($soundFileName); 
       $message->setCustomProperty("custom", json_encode($customMessage)); 
       $push->add($message); 

       // Send all messages in the message queue 
       $push->send(); 

       // Disconnect from the Apple Push Notification Service 
       $push->disconnect(); 

       // Examine the error message container 
       $aErrorQueue = $push->getErrors(); 

       if (!empty($aErrorQueue)) { 
        Logger::getRootLogger()->error("Apple Server Error= " . $aErrorQueue); 
       }else{ 
        Logger::getRootLogger()->info("Message Send successfully to " . $toUserId); 
       } 
      } 
    } catch (Exception $exc) { 
     Logger::getRootLogger()->error("Publish a Push= " . $exc); 
    } 
} 

但它发生了很多次,我没有收到他们,所以有什么可能是一个可能的解决方案。是因为我正在连接并断开连接吗?

什么是更好的方式来写这段代码?

您是否正确收到ios应用程序中的令牌?

另外,使用这个(https://github.com/jPaolantonio/SimplePush/blob/master/simplepush.php)简短的例子,然后自己修改它。 这个例子正在为我工​​作。

+0

是的,当收到通知时,令牌被正确接收。 – weber67 2013-05-05 08:58:39