Android — Использование curl_multi_exec с push-уведомлениями gcm и переполнением стека

В настоящее время у меня есть приложение, настроенное на отправку 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;

}

}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]