回憶遠程推送的原理

回憶一下遠程推送的過程數據庫

遠程推送:又稱APNs服務器

   長鏈接:微信

       特色:傳輸速度快同步

       做用:系統升級(正常都是分批推送),查找個人iPhone產品

下面介紹一下遠程推送的原理:登錄

         1.設備的惟一標識:UDID.用來區別咱們的設備原理

         2.應用的惟一標識:bundleID.用來區別應用程序程序

     由於這二者牽扯用戶的信息,因此蘋果必定不會提供給咱們,所以蘋果搞了一個DeviceToken(包含UDID和bundleID),因此只須要把DeviceToken傳給蘋果,蘋果就能解析,這樣就能夠確認你手機上的應用方法

例子:微信的兩個客戶端A和B,首先保證這兩個都是聯網狀態。數據

        如今A要發消息給B,經過微信服務器將消息傳遞給B。A和B的微信客戶端都在前臺,經過微信服務器就能夠正常聊天

        當B的微信客戶端不在前臺時,這時A發送過來一條消息,這時就須要用到APNs

解釋一下微信如何拿到DeviceToken,和傳遞DeviceToken

     1.當微信程序啓動時,調用蘋果提供的API生成DeviceToken,由於不會提供(UDID和bunldeID),因此只能拿到返回值,而後保存到服務器

     2.這樣就能經過微信帳號得到DeviceToken,而後傳給蘋果(APNs)

     3.APNs收到消息後,經過長鏈接傳遞給對應的客戶

 

目前想到的一些問題:

  1.假如更換設備了

      在從新登陸的時候,判斷上傳登陸的設備,更新數據庫中的DeviceToken(之前的設備不能使用了)

  2.多點登陸問題(iPad 和 iPhone)

     判斷設備類型,保存多個DeviceToken到數據庫中,這個取決於產品的需求

  3.顯示信息這塊:顯示信息爲4條,再推送一條,應該是5條

                         點開後應該爲0 或者爲 5

           第一種方法,計數器減減

           第二種方法:計數器清零

           客戶端與服務器同步

相關文章
相關標籤/搜索