I am using this function to send push notifications
My problem is when I need to send over 1000 push notifications It takes too much time.
Is there a way to keep curl connection alive and send notifications faster without getting blocked by apple servers?
from Too many curl request for Apple Push Notifications
function SendPush($token,$message,$badge,$eventid) {
$device_token = $token;
$pem_file = '../pushcert.pem';
$pem_secret = 'pass';
$apns_topic = 'com.topic';
$sample_alert = '{"aps":{"alert":"'. $message .'","sound":"default",
"badge":'.
$badge .'}, "type":"attend", "eventID":"'.$eventid.'"}';
$url = "https://api.push.apple.com/3/device/$device_token";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sample_alert);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_HTTPHEADER, array("apns-topic: $apns_topic"));
curl_setopt($ch, CURLOPT_SSLCERT, $pem_file);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pem_secret);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$response = curl_exec($ch);
$sonuc = json_decode($response,true);
if ($sonuc['reason'] == "BadDeviceToken" || $sonuc['reason'] == "Unregistered" ) {
return false;
} else {
return true;
}
}
It is working good. I can also detect the invalid tokens.My problem is when I need to send over 1000 push notifications It takes too much time.
Is there a way to keep curl connection alive and send notifications faster without getting blocked by apple servers?
from Too many curl request for Apple Push Notifications
No comments:
Post a Comment