PHP-код для отправки push-уведомлений Android на несколько устройств

Ниже приведен код для php, в котором я делаю вызов curl серверу GCM:

//CODE TO SEND PUSH NOTIFICATION
define('API_ACCESS_KEY', 'XXXXXXXXXXXXXXXXXXXXX');
$i = 0;
$result1 = mysql_query("SELECT * FROM `my_devices`") or die($log->lwrite("Error" . mysql_error()));
while ($row2 = mysql_fetch_array($result1)) {
$i = $i + 1;
$msg = array(
'message' => $resultTextValue
);

$fields = array(
'registration_ids' => array($row2['gcmId']),
'data' => $msg
);

$headers = array(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
curl_close($ch);
}

Мой код находится в стадии разработки и зарегистрировано максимум 10 устройств. Таким образом, на отправку уведомления всем устройствам требуется приличное время.

Моя забота: когда приложение будет развернуто, у меня будут тысячи устройств для отправки push-уведомлений. Разве это не займет много времени для вызова push-уведомлений?

Я новичок в PHP и скопировал приведенный выше код из некоторого примера приложения.

Пожалуйста, помогите мне знать, правильно ли я делаю. Или же укажи мне правильный способ сделать это.

Пожалуйста помоги!

Заранее спасибо.

2

Решение

сначала получить все регистрационные идентификаторы в массив

$regIDS = array(); // set variable as array

// get all ids in while loop and insert it into $regIDS array
while ($row2 = mysql_fetch_array($result1)) {
array_push($regIDS ,$row2['gcmId'])
}

затем в $ fields укажите имя переменной массива $ regIDS вместо массив ($ row2 [ ‘gcmId’]

$fields = array(
'registration_ids' => $regIDS ,
'data' => $msg
);

и теперь вы можете отправить сообщение на несколько устройств в одном сообщении push-уведомления.

http://php.net/manual/en/function.array-push.php

пример рис =

здесь у меня есть только два regID в базе данных, поэтому здесь Success = 2 только в одном вызове push-уведомления

введите описание изображения здесь

1

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

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