require_once 'classes/DataService.php'; require_once 'classes/Apns.php'; echo "<br/>Started processing message queue"; //get the certificates $certificates = DataService::singleton()->getCertificates(); foreach ($certificates as $certificate) { //get N new messages from queue. We can get more messages on the next schedule echo "<br/>Getting messages for: [{$certificate->CertificateName}]"; //var_dump($certificate); $messagesArray = DataService::singleton()->getMessages($certificate->CertificateId, MessageStatus::UNPROCESSED, 1000); //if no messages for app continue with next if (count($messagesArray) == 0) { continue; } //connect to apple push notification server with the app credentials $certificatePath = $certificateFolder . '/' . $certificate->KeyCertFile; echo $certificatePath; $server = DataService::singleton()->getCertificateServer($certificate->CertificateId, 1); //var_dump($server); $apns = new apns($server->ServerUrl, $certificatePath, $certificate->Passphrase); //send each message foreach ($messagesArray as $message) { //send payload to device $apns->sendMessage($message->DeviceToken, $message->Message, $message->Badge, $message->Sound); //mark as sent DataService::singleton()->setMessageStatus($message->MessageId, 2); } //execute the APNS desctructor so the connection is closed. unset($apns); } echo "<br/>Completed processing messages queue";