我正在使用AWS SNS发送推送通知,现在我正在使用 aws-php-sdk
的 publish
方法发送推送特定设备 . My requirement is sent push to thousands of members within 30 seconds . 当我使用发布方法时,需要5分钟才能发送1000个用户 . 我已经阅读了关于 topic
它一次发送多个成员,但我的方案是我想将推送发送给特定用户,而不是所有主题用户 .
例如,我在一个主题中注册了10,000个成员,但是从这10,000个成员中我发送了9000个,有时是1000个成员 .
所以任何人都知道如何使用主题发送推送,但仅限于特定成员 .
我还想到另一种情况,每次我创建新主题并注册该主题的成员然后向他发送消息然后删除 topic
,但这里每次注册成员时它也需要时间 . 因此,如果您有想要一次注册多个成员,那么它对我也有帮助 .
下面是我目前发送推送的代码 .
$arn = "user arn";
$sns = new Aws\Sns\SnsClient(array(
'version' => 'latest',
'key' => my_aws_key,
'secret' => aws_secret,
'region' => region,
'profile' => profile_name,
'debug' => false,
'http' => array('verify' => false)
));
$appArn = "application arn";
$sns->publish(array('Message' => '{ "GCM": "{\"data\": { \"message\": \" This is my message \"} }"}',
'MessageStructure' => 'json',
'TargetArn' => $arn
));
2 回答
我建议使用
publishAsync()
方法 .EDIT
承诺处理的示例
在尝试了很多解决方案之后,我能够在一分钟内发送数千个通知,这里我正在显示代码我是如何做到的,我已经完成了
php
multicurl
功能,所以我执行多个并行进程并且所有进程同时发送通知 .Define multi curl and prepare URL to send notification
假设我有5000个成员,我有一些令牌和其他成员详细信息
$device_type_ids_arr
我是所有成员的一部分到500一堆,所以每次curl执行它发送通知给500个成员Function which is received curl request and send notification