gpt4 book ai didi

php - APNs Provider API 批量请求

转载 作者:可可西里 更新时间:2023-11-01 05:50:39 25 4
gpt4 key购买 nike

我准备用 PHP 重写我的推送服务以使用新的 APNs Provider API。我的问题是,是否有将一个通知发送到多个设备的最佳实践...

我已经找到了用 PHP 发送推送通知的解决方案:

$ch = curl_init("https://api.development.push.apple.com/3/device/$device_token");
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"aps":{"alert":"Here I am","sound":"default"}}');
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("apns-topic: $apns_topic"));
curl_setopt($ch, CURLOPT_SSLCERT, $pem_file);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pem_secret);
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

但使用此代码我可以将消息发送到一台设备,因为我必须将设备 token 放在 URL 中。但我想将消息发送到未知数量的设备。不幸的是,我找不到用于向多个设备发送消息的端点。


Apple 文档 ( https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html ) 是这样说的:

在多个通知中保持与 APNs 的连接;不要反复打开和关闭连接。 APNs 将快速连接和断开连接视为拒绝服务攻击。

所以我认为将我的 CURL 请求 放入 for-loop 并循环遍历我的所有设备 token 是一种不好的做法。

有人对如何解决这个案子有什么建议吗?

提前致谢。

最佳答案

不确定 curl,但一般来说,Apns 提供者必须保持与 Apns Cloud 的持久连接。无法使用单个消息向多个设备广播。 Apns 提供者应利用 http/2(每个连接多个流)并且还可以跨多个连接发送消息,但不得在循环中进行连接和断开连接,这将被视为 DoS 攻击。

避免连接循环,你应该在循环中发布消息,连接/断开部分不能是循环的一部分。

希望对你有帮助。

问候,_阿尤什

关于php - APNs Provider API 批量请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com