При базе пользователей в 200 000 человек и текущем сеансе возникает необходимость одновременно отправлять push-уведомления всем пользователям, чтобы информировать их о реальном сеансе на PHP. Однако push-уведомления Firebase могут быть отправлены только 1000 пользователям одновременно. В результате последний пользователь получает уведомление через 10 минут после запуска сеанса.
В свете этой проблемы какие шаги можно предпринять, чтобы устранить это ограничение и гарантировать, что все пользователи получат уведомление? быстрое уведомление?
Я использовал приведенный ниже код
function sendMsg($regIds, $data, $device_type=''){
$apiKey = "";
$fields = array(
'priority' => 'high',
'data' => array(
'title' => $this->data['title'],
"body" => $this->data['message'],
'sound' => 'default',
'message' => $this->data['message'],
'screen' => $this->data['screen'],
'screen_id' => $this->data['screen_id']
)
);
if($this->data['screen_data']) {
$fields['data']['screen_data'] = $this->data['screen_data'];
}
if($this->data['notification_id']) {
$fields['data']['notification_id'] = $this->data['notification_id'];
}
if(gettype($regIds) != 'array') {
$fields['to'] = $regIds;
}
if($device_type != 'android') {
$fields['notification'] = array(
'title' => $this->data['title'],
'body' => $this->data['message'],
'sound' => 'default'
);
}
if($fields) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: key='.$this->data['api_key'], 'Content-Type: application/json'));
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);
return $result;
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... imultaneou
Как эффективно отправлять push-уведомления Firebase 200 000 пользователей одновременно с помощью PHP? [закрыто] ⇐ Php
Кемеровские программисты php общаются здесь
1726808413
Anonymous
При базе пользователей в 200 000 человек и текущем сеансе возникает необходимость одновременно отправлять push-уведомления всем пользователям, чтобы информировать их о реальном сеансе на PHP. Однако push-уведомления Firebase могут быть отправлены только 1000 пользователям одновременно. В результате последний пользователь получает уведомление через 10 минут после запуска сеанса.
В свете этой проблемы какие шаги можно предпринять, чтобы устранить это ограничение и гарантировать, что все пользователи получат уведомление? быстрое уведомление?
Я использовал приведенный ниже код
function sendMsg($regIds, $data, $device_type=''){
$apiKey = "";
$fields = array(
'priority' => 'high',
'data' => array(
'title' => $this->data['title'],
"body" => $this->data['message'],
'sound' => 'default',
'message' => $this->data['message'],
'screen' => $this->data['screen'],
'screen_id' => $this->data['screen_id']
)
);
if($this->data['screen_data']) {
$fields['data']['screen_data'] = $this->data['screen_data'];
}
if($this->data['notification_id']) {
$fields['data']['notification_id'] = $this->data['notification_id'];
}
if(gettype($regIds) != 'array') {
$fields['to'] = $regIds;
}
if($device_type != 'android') {
$fields['notification'] = array(
'title' => $this->data['title'],
'body' => $this->data['message'],
'sound' => 'default'
);
}
if($fields) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: key='.$this->data['api_key'], 'Content-Type: application/json'));
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);
return $result;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78621698/how-to-efficiently-send-firebase-push-notifications-to-200-000-users-simultaneou[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия