什么是遠(yuǎn)程推送通知:
顧名思義就是從遠(yuǎn)程服務(wù)器推送到客戶端的通知.
遠(yuǎn)程推送服務(wù),又稱為 APNs(Apple Push Notification Services)
為什么要使用遠(yuǎn)程推送服務(wù)?
傳統(tǒng)獲取數(shù)據(jù)的局限性:
只要用戶關(guān)閉了 APP,就無法跟 APP的服務(wù)器溝通,無法從服務(wù)器上獲取最新的數(shù)據(jù)內(nèi)容.
遠(yuǎn)程推送通知可以解決以上問題:
不管用戶打開還是關(guān)閉 APP,只要聯(lián)網(wǎng)了,都能接收到服務(wù)器發(fā)送的遠(yuǎn)程通知.
遠(yuǎn)程推送通知使用須知:
所有的蘋果設(shè)備在聯(lián)網(wǎng)狀態(tài)下都會與蘋果的服務(wù)器建立長連接.
什么是長連接?
只要聯(lián)網(wǎng)了,就一直建立的連接.
長連接的作用:
時(shí)間校準(zhǔn).
系統(tǒng)升級.
查找的 iPhone.
....
遠(yuǎn)程推送通知的作用
消息發(fā)送的過程:(這里通過一張圖來簡單說一下)
獲得 device Token 的過程
1>發(fā)送設(shè)備的 UDID 和應(yīng)用的 Bundle ID 給 APNs 服務(wù)器.
2>蘋果服務(wù)器加密生成一個(gè) device Token,返回給客戶端.
3>發(fā)送當(dāng)前用戶的 device Token 和用戶的標(biāo)識(比如 ID 或者 QQ號)
4>QQ 服務(wù)器把用戶的 device Token 和用戶基本信息保存在數(shù)據(jù)庫中.
5>這里李四客戶端要給張三客戶端發(fā)送信息.先發(fā)送給 QQ 服務(wù)器.
6>QQ 服務(wù)器接收到李四發(fā)送的消息,然后去數(shù)據(jù)庫中找對應(yīng)的設(shè)備.
7>找到以后 QQ 服務(wù)器把device Token 和要發(fā)送的數(shù)據(jù),發(fā)送給蘋果服務(wù)器,
8>蘋果服務(wù)器通過 device Token 找到對應(yīng)的設(shè)備,把消息傳遞給設(shè)備.
開發(fā) iOS 程序的推送功能:
推送證書不能使用通配符 ID
添加描述文件