APNS提供了两项基本的服务:消息推送和反馈服务
推送通知,也被叫做遠(yuǎn)程通知,是在iOS 3.0以后被引入的功能。是當(dāng)程序沒(méi)有啟動(dòng)或不在前臺(tái)運(yùn)行時(shí),告訴用戶有新消息的一種途徑,是從外部服務(wù)器發(fā)送到應(yīng)用程序上的。一般說(shuō)來(lái),當(dāng)要顯示消息或下載數(shù)據(jù)的時(shí)候,通知是由遠(yuǎn)程服務(wù)器(程序的提供者)發(fā)送,然后通過(guò)蘋(píng)果的推送通知服務(wù)(Apple Push Notification Service,簡(jiǎn)稱apns)推送到設(shè)備的程序上。
推送的新消息可能是一條信息、一項(xiàng)即將到期的日程或是一份遠(yuǎn)程服務(wù)器上的新數(shù)據(jù)。在系統(tǒng)上展現(xiàn)的時(shí)候,可以顯示警告信息或在程序icon上顯示數(shù)字,同時(shí),也可以播放警告音。一旦用戶注意到程序有新的信息、時(shí)間或是數(shù)據(jù),他們可以運(yùn)行程序并訪問(wèn)新的內(nèi)容。也可以選擇忽略通知,這時(shí)程序?qū)⒉粫?huì)被激活。
iPhone, iPad和iPod touch上同一時(shí)刻只有一個(gè)app在前臺(tái)運(yùn)行。大多數(shù)程序在后臺(tái)運(yùn)行的時(shí)候,可以對(duì)某些用戶感興趣的內(nèi)容做出回應(yīng)(定時(shí)、或數(shù)據(jù)等)。推送通知能讓程序在這些事件發(fā)生的時(shí)候通知用戶。
作為提供者為程序開(kāi)發(fā)和部署推送通知,必須通過(guò)iOS Developer Program Portal獲得SSL證書(shū)。每個(gè)證書(shū)限用于一個(gè)程序,使用程序的bundle ID作為標(biāo)識(shí)。證書(shū)有兩種用途的:一種是針對(duì)sandbox(用于開(kāi)發(fā)和測(cè)試),另外一種針對(duì)發(fā)布產(chǎn)品。這兩種運(yùn)行環(huán)境擁有為各自指定的IP地址并且需要不同的證書(shū)。還必須為兩種不同的環(huán)境獲取各自的provisioning profiles。
APNS提供了兩項(xiàng)基本的服務(wù):消息推送和反饋服務(wù)。
消息推送:使用流式TCP套接字將推送通知作為二進(jìn)制數(shù)據(jù)發(fā)送給APNs。消息推送有分別針對(duì)開(kāi)發(fā)和測(cè)試用的sandbox、發(fā)布產(chǎn)品的兩個(gè)接口,每個(gè)都有各自的地址和端口。不管用哪個(gè)接口,都需要通過(guò)TLS或SSL,使用SSL證書(shū)來(lái)建立一個(gè)安全的信道。提供者編制通知信息,然后通過(guò)這個(gè)信道將其發(fā)送給APNs。 注:sandbox:?? gateway.sandbox.push.apple.com:219 產(chǎn)品接口:gateway.push.apple.com:2195
反饋服務(wù):可以得到針對(duì)某個(gè)程序的發(fā)送失敗記錄。提供者應(yīng)該使用反饋服務(wù)周期性檢查哪些設(shè)備一直收不到通知,不需要重復(fù)發(fā)送通知到這些設(shè)備,降低推送服務(wù)器的負(fù)擔(dān)。 注:sandbox:feedback.push.apple.com:2196 產(chǎn)品接口:feedback.sandbox.push.apple.com:2196
反饋服務(wù)
如果供應(yīng)商試圖發(fā)送推送通知到一個(gè)應(yīng)用程序,但應(yīng)用程序已經(jīng)不存在該設(shè)備中了,設(shè)備會(huì)報(bào)告一個(gè)信息給蘋(píng)果推送通知服務(wù)器。這種情況經(jīng)常發(fā)生,當(dāng)用戶卸載應(yīng)用程序后。如果設(shè)備報(bào)告了嘗試傳遞應(yīng)用程序推送通知時(shí)的失敗,APNS需要一些方法來(lái)通知供應(yīng)商,以便它能夠避免再次將通知發(fā)送到該設(shè)備。這樣做可以降低不必要的消息開(kāi)銷(xiāo)和提高系統(tǒng)的整體性能。
為此蘋(píng)果的推送通知服務(wù)器包括一個(gè)反饋服務(wù),APNS不斷更新每個(gè)應(yīng)用程序的失效的設(shè)備令牌列表。該設(shè)備是識(shí)別設(shè)備令牌是否由二進(jìn)制格式的編碼的。供應(yīng)商應(yīng)定期查詢反饋服務(wù)來(lái)獲取他們的應(yīng)用程序的設(shè)備令牌,以鑒別是否還存在(名單)。然后,驗(yàn)證應(yīng)用程序是不是最近(被識(shí)別的設(shè)備)重新注冊(cè)了,否者供應(yīng)商應(yīng)停止向這些設(shè)備發(fā)送通知。
反饋服務(wù)可以通過(guò)一個(gè)二進(jìn)制接口來(lái)訪問(wèn),和發(fā)送推送通知相類似。您可以通過(guò)feedback.push.apple.com端口2196訪問(wèn)反饋服務(wù)的結(jié)果;?您可以通過(guò)feedback.sandbox.push.apple.com端口2196訪問(wèn)沙盒的反饋服務(wù)的結(jié)果。至于二進(jìn)制接口與推送通知一樣,您必須使用TLS(或SSL)來(lái)建立一個(gè)安全的通信通道。這些連接所需的SSL證書(shū)是同一個(gè)是發(fā)送通知提供的。要建立一個(gè)值得信賴可以供應(yīng)商的身份,你應(yīng)該與APNS使用點(diǎn)對(duì)點(diǎn)的連接驗(yàn)證時(shí)提交此證書(shū)。
總結(jié)
以上是生活随笔為你收集整理的APNS提供了两项基本的服务:消息推送和反馈服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 恋与制作人最强专家是谁
- 下一篇: Valid signing identi