Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Zend框架收听APN反馈服务器?_Php_Push Notification_Zend Framework2_Apple Push Notifications - Fatal编程技术网

Php 如何使用Zend框架收听APN反馈服务器?

Php 如何使用Zend框架收听APN反馈服务器?,php,push-notification,zend-framework2,apple-push-notifications,Php,Push Notification,Zend Framework2,Apple Push Notifications,老实说,我不是一个真正的后端开发人员,所以我不知道如何正确地做到这一点 我想使用Zend Framework 2.x.x向iOS和Android发送推送通知。我了解大部分内容,因此我相信我现在可以轻松地向设备发送推送通知 我现在陷入困境的是实现侦听器。引述案文: APNS有一个你必须倾听的反馈服务。苹果表示 他们监视提供者以确保他们正在收听此消息 服务 反馈服务只返回设备令牌数组和 时间您可以使用该时间来确保设备没有损坏 自上次发送以来已重新注册推送通知 下面附上此代码: $apns = new

老实说,我不是一个真正的后端开发人员,所以我不知道如何正确地做到这一点

我想使用Zend Framework 2.x.x向iOS和Android发送推送通知。我了解大部分内容,因此我相信我现在可以轻松地向设备发送推送通知

我现在陷入困境的是实现侦听器。引述案文:

APNS有一个你必须倾听的反馈服务。苹果表示 他们监视提供者以确保他们正在收听此消息 服务

反馈服务只返回设备令牌数组和 时间您可以使用该时间来确保设备没有损坏 自上次发送以来已重新注册推送通知

下面附上此代码:

$apns = new Zend_Mobile_Push_Apns();
$apns->setCertificate('/path/to/provisioning-certificate.pem');

try {
    $apns->connect(Zend_Mobile_Push_Apns::SERVER_FEEDBACK_SANDBOX_URI);
} catch (Zend_Mobile_Push_Exception_ServerUnavailable $e) {
    // you can either attempt to reconnect here or try again later
    exit(1);
} catch (Zend_Mobile_Push_Exception $e) {
    echo 'APNS Connection Error:' . $e->getMessage();
    exit(1);
}

$tokens = $apns->feedback();
while(list($token, $time) = each($tokens)) {
    echo $time . "\t" . $token . PHP_EOL;
}
$apns->close();

我实际上了解它是如何工作的,以及我应该如何处理服务器返回的反馈。我不知道的是,这个脚本是如何“监听”苹果推送通知反馈服务器的?我不认为我可以在一个文件中插入这段代码,然后奇迹般地期望苹果的服务器找到它。我如何持续“倾听”反馈服务器,以便在苹果需要时调用此脚本?

苹果不会调用您的脚本。您的脚本会定期调用苹果的反馈服务(例如,每天一次,由您决定运行脚本的频率)。然后处理反馈服务返回的设备令牌,并从数据库中删除过时的设备令牌

每天查询反馈服务以获取设备令牌列表。使用 用于验证设备令牌未被删除的时间戳 自生成反馈条目后已重新注册。对于每个设备 如果尚未重新注册,请停止发送通知。APNs 监督供应商在检查反馈方面的努力程度 服务,并避免向不存在的用户发送推送通知 设备上的应用程序


您可以阅读有关反馈服务的更多信息。

苹果公司不会调用您的脚本。您的脚本会定期调用苹果的反馈服务(例如,每天一次,由您决定运行脚本的频率)。然后处理反馈服务返回的设备令牌,并从数据库中删除过时的设备令牌

每天查询反馈服务以获取设备令牌列表。使用 用于验证设备令牌未被删除的时间戳 自生成反馈条目后已重新注册。对于每个设备 如果尚未重新注册,请停止发送通知。APNs 监督供应商在检查反馈方面的努力程度 服务,并避免向不存在的用户发送推送通知 设备上的应用程序


您可以阅读有关反馈服务的更多信息。

web服务器执行监听功能,因此,似乎可以使用此代码来回复来自Apple服务器的请求。我不是iOS开发人员,但我想你应该在你的Apple developer帐户中设置你的侦听器URL。可能有用:指向。web服务器执行侦听位,因此似乎是要使用此代码来回复来自Apple服务器的请求。我不是一个iOS开发者,但我猜你会在你的苹果开发者帐户中设置你的侦听器URL。可能有用:指向。哈哈,我对“侦听”的理解是,苹果最终会调用我的脚本。如果是另一种情况,我是否应该为此设置一个cron作业,并每隔24小时左右执行一次?@AndyIbanez是的,设置一个cron作业定期执行脚本就可以了。哈哈,我对“倾听”的理解是,苹果最终会调用我的脚本。如果情况正好相反,我是否应该为此设置一个cron作业,并每隔24小时左右执行一次?@AndyIbanez是的,设置一个cron作业定期执行脚本就可以了。