iOS開發如何實現訊息推送機制

2022-03-12 17:17:42 字數 3131 閱讀 8367

**:

push的原理:

push 的工作機制可以簡單的概括為下圖

圖中,provider是指某個iphone軟體的push伺服器,這篇文章我將使用.net作為provider。

上圖可以分為三個階段。

第一階段:.net應用程式把要傳送的訊息、目的iphone的標識打包,發給apns。

第二階段:apns在自身的已註冊push服務的iphone列表中,查詢有相應標識的iphone,並把訊息發到iphone。

第三階段:iphone把發來的訊息傳遞給相應的應用程式, 並且按照設定彈出push通知。

從上圖我們可以看到。

1、首先是應用程式註冊訊息推送。

2、 ios跟apns server要devicetoken。應用程式接受devicetoken。

3、應用程式將devicetoken傳送給push服務端程式。

4、 服務端程式向apns服務傳送訊息。

5、apns服務將訊息傳送給iphone應用程式。

無論是iphone客戶端跟apns,還是provider和apns都需要通過證書進行連線的。下面我介紹一下幾種用到的證書。

幾種證書:

一、*.certsigningrequest檔案

1、生成certificate signing request (csr):

2、填寫你的郵箱和common name,這裡填寫為pushchat。選擇儲存到硬碟。

這樣就在本地生成了乙個pushchat.certsigningrequest檔案。

二、生成*.p12檔案

1、匯出金鑰,並輸入你的密碼。

輸入你的密碼:

這樣就生成了乙個pushchatkey.p12檔案。

description:中輸入pushchat

bundle seed id:預設選擇generate new

bundle identifier:輸入com.mysoft.pushchat

點選提交

這樣就會生成下面這條記錄:

點選配置:

出現下面介面,點選繼續:

這裡我們選擇前面生成好的pushchat.certsigningrequest檔案,點選生成。

正在生成

點選完成,你會發現狀態變成enabled。

到現在為止,我們已經生成了3個檔案。

1、pushchat.certsigningrequest

2、pushchatkey.p12

3、aps_developer_identity.cer

現在我們建立乙個簡單的iphone應用程式。

通過registerforremotenotificationtypes方法,告訴應用程式,能接受push來的通知。

3、在xcode中執行,會彈出下面的提示框:

選擇ok。表示此應用程式開啟訊息通知服務。

獲取到的devicetoken,我們可以通過webservice服務提交給.net應用程式,這裡我簡單處理,直接列印出來,拷貝到.net應用環境中使用。

傳送通知的.net應用程式出來需要知道devicetoken之外,還需要乙個與apns連線的證書。

這個證書可以通過我們前面生成的兩個檔案中得到。

使用openssl

1、將aps_developer_identity.cer轉換成 aps_developer_identity.pem格式。

openssl x509 -in aps_developer_identity.cer -inform der -out aps_developer_identity.pem -outform pem

2、將p12格式的私鑰轉換成pem,需要設定4次密碼,密碼都設定為:abc123。

openssl pkcs12 -nocerts -out pushchat_noenc.pem -in pushchat.p12

3、用certificate和the key 建立pkcs#12格式的檔案。

openssl pkcs12 -export -in aps_developer_identity.pem -inkey pushchat_noenc.pem -certfile pushchat.certsigningrequest -name aps_developer_identity -out aps_developer_identity.p12

這樣我們就得到了在.net應用程式中使用的證書檔案:aps_developer_identity.p12。

在.net應用程式中傳送通知。

有個開源的類庫:apns-sharp。

這樣就ok了。

效果:通知的**:

for (int i = 1; i

用手機拍的ipad上面的顯示:

iOS開發訊息推送機制 遠端推送。

圖2 獲得裝置的devicetoken 到現在為止總結起來的流程就是 推送前的配置 1.準備一堆證書 在 哪台電腦 上用哪台裝置 除錯哪個應用 2.利用裝置 udid 標識在devices 一欄中註冊裝置 3.建立 應用的唯一標識,bundleidentifier tips 萬用字元 id 不能用於...

訊息推送機制

1.長連線 在頁面中嵌入乙個隱藏的jframe,將其src屬性設定為乙個對長連線的請求或者採用xrh請求,伺服器就能源源不斷地往客戶端輸送資料 如gmail聊天 優點 訊息及時到達,不發無用的請求,管理起來方便 缺點 伺服器維護乙個長連線會增加開銷 2.長輪詢 客戶端向伺服器端傳送ajax請求,伺服...

蘋果訊息推送機制

推送目前使用過個推,極光推送,友盟推送等,現在根據這些第三方的推送,總結一下推送的原理。第一階段 服務端程式把要傳送的訊息 目的iphone的標識打包,發給apns。第二階段 apns在自身的已註冊push服務的iphone列表中,查詢有相應標識的iphone,並把訊息發到iphone。第三階段 i...