簡體   English   中英

如何使用Zend框架收聽APN反饋服務器?

[英]How do I listen to the APN Feedback Server using the Zend Framework?

說實話,我不太后端開發人員,所以我不如何正確地做到這一點。

我想使用Zend Framework 2.xx將推送通知發送到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();

我實際上了解它的工作方式以及服務器返回的反饋應該如何處理。 我不知道該腳本是如何“監聽” Apple Push Notification Feedback Server的? 我認為我不能只在文件中添加這段代碼,就奇跡般地期望蘋果的服務器找到它。 我如何不斷“監聽”反饋服務器,以便在Apple需要時調用此腳本?

Apple沒有調用您的腳本。 您的腳本會定期調用Apple的反饋服務(例如,每天一次-您決定運行腳本的頻率)。 然后,您處理反饋服務返回的設備令牌,並從數據庫中刪除過時的設備令牌。

每天查詢反饋服務以獲取設備令牌的列表。 使用時間戳來驗證自生成反饋條目以來尚未重新注冊設備令牌。 對於尚未重新注冊的每個設備,請停止發送通知。 APN在檢查反饋服務並避免向設備上不存在的應用程序發送推送通知時監視提供商的努力。

您可以在此處閱讀有關反饋服務的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM