В настоящее время у меня есть приложение, настроенное на отправку push-уведомлений через Google / GCM. Это работает нормально, однако существует ограничение в 1000 на push-уведомление. В настоящее время мне приходится зацикливать регистрационные идентификаторы на отдельные сообщения и отправлять их партиями. У меня вопрос, я не очень знаком с CURL. Как я могу использовать curl_mutli_exec для ускорения push-уведомлений и получения сообщений для пользователей с меньшей задержкой.
Вот текущий способ, которым я настроил это. Что мне нужно сделать, чтобы использовать curl_mutli_exec? Спасибо!
$file = fopen("/gcmusers.key", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
$pcount = 0;
$registrationIDs = array();
while(!feof($file)) {
$pid = fgets($file);
$pcount = $pcount + 1;
if ($pid <> '') {
array_push($registrationIDs,$pid);
}
if ($pcount == 990) {
// Message to be sent
$apiKey = "MyAPIKEY";
$url = 'https://android.googleapis.com/gcm/send';
$fields = array('registration_ids' => $registrationIDs, 'data' => array( "message" => $message, "pic" => $pic, "price" => $price, "item" => $item, "site" => $site, "refurb" => $refurb, "percent" => $percent, "buyurl" => $buyurl ),);
$headers = array('Authorization: key=' . $apiKey, 'Content-Type: application/json');
// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );
// Execute post
$result = curl_exec($ch);
// Close connection
curl_close($ch);
$registrationIDs = array();
$pcount = 0;
}
}
Задача ещё не решена.
Других решений пока нет …