php - 只有一半的推送通知到达设备 (APNS)

标签 php ios iphone apple-push-notifications

$usersStmt = self::$db->query("SELECT `token` FROM `tokens`");
$users = $usersStmt->fetchAll(PDO::FETCH_COLUMN);

foreach ($users AS $userToken) {
    $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $userToken)) . chr(0) . chr(strlen($payload)) . $payload;
    $result = fwrite($fp, $apnsMessage);
}

我有一张表,里面有 10 个推送通知 token 。我使用 PHP 获取这些 token 并将每个 token 的通知发送到 APNS。

问题是,实际上只有一半收到了通知。我有一种感觉,这是因为其中一个 token 无效(或类似的东西)并且它阻止它发送其余的 token 。

我检查了 $result 的值,每个都返回 true。这意味着所有通知都已成功发送到 APNS,但并未传送到所有设备。

是否有可能无效的 token 会中断其余通知到达设备?我不确定这里发生了什么,但我知道所有通知都已成功发送到 APNS,但未到达设备。

有什么想法吗?

最佳答案

无效的 token 不会中断其余通知到达设备。 我之前也遇到过同样的问题,问题出在消息本身。 检查您的消息长度,通知负载为 256 字节)。 检查您的消息编码,对非 ASCII 消息使用转义序列。 如果您多次向同一设备发送通知,Apple 将只发送最后一次通知。 确保您的 token 适用于相同的工作环境,沙盒 token 不适用于生产服务器。 查看 Apple 技术说明以获取更多信息: https://developer.apple.com/library/mac/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG23

关于php - 只有一半的推送通知到达设备 (APNS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26831207/

相关文章:

javascript - 如何使用 window.print 在我的结果中打印单行

PHP 表单列表

javascript - 如何在javascript中更改隐藏值?

iphone - CGAffineRotation 倾斜图像照片

php - 错误: Undefined index: image for ($_FILES ['image' ] ['name' ])

ios - 取消请求的错误处理

ios - 如何使一组标签相对于图像垂直居中?

iphone - 将 id3 元数据写入应用程序包中的 mp3 文件

iphone - NSURLConnection缓存和接收数据

ios - 在发送到 AVAssetWriter 之前保存 CMSampleBufferRef