使用fcm和php计划推送通知到80k及以上的用户

时间:2013-08-09 11:26:00

标签: php cron google-cloud-messaging

首先,我检查数据库表以查找不同用户发布的未发送消息。如果可用,则执行以下代码并每隔5分钟使用cron作业运行它。

SELECT * FROM `jkeio_community_gcmusers`; //contain all gcm users
$i=0;

while($data_apps=mysql_fetch_array($data_app))
         {
 $message1=$i.'You have a new item in Akhbar';
 sendnotificationandroid($data_apps['gcm_regid'],$message1); //send function for sending push notification for android and it sends message via curl method
$i++;

             }

发送消息后,我会将未发送标志设置为使用更新查询发送

关于100或200个用户,所有事情都可以,但是当用户增加时,消息按时交付 你能告诉我如何实现这个目标

先谢谢 Anand Neema

1 个答案:

答案 0 :(得分:1)

GCM允许我们一次向最多1000个设备发送通知,因此我建议重构您的方法sendnotificationandroid以接受一系列gcm注册ID。

例如,您可以先浏览数据库行并收集注册表并将它们附加到数组中。一旦数组大小达到1000(或者没有更多的注册要添加),请将其传递给新的sendnotificationandroid方法,该方法将构建通知有效负载,如下所示:

{
  "registration_ids" : ["regId1", "regId2", "regId3", ....., "regId1000"],
  "data" : {
    ...
  },
}

因此,对于80K用户,您需要大约80个循环来发送通知,正如Alma Do Mundo建议的那样,最好使用curl_multi_exec将请求发送到GCM服务器。