APNs原理及環(huán)境搭建

APNs

推送在我們的生活中無處不在,下面就已開發(fā)者的角度來為你介紹其工作原理及如何搭建push server環(huán)境兴革。
一款APP要想收到消息推送绎晃,有一個必要前提——配置推送證書蜜唾。這里不在介紹如何配置推送證書。

原理

server下發(fā)消息給APP

Provider將消息推送給APNs庶艾,APNs將消息推送給Device袁余,Device再將消息通知給APP。

remote_notif_simple_2x.png

推送原理

推送的前提是Device需向APNs發(fā)起注冊注冊咱揍,注冊成功后APNs下發(fā)一個deviceToken給APP颖榜,APP再將其發(fā)送給Provider,當有要被推送的消息時煤裙,Provider會將消息結合deviceToken按指定的消息格式打包發(fā)送給APNs掩完,然后由APNs推送給Device。

deviceToken生成

token_generation_2x.png
  1. Device向APNs注冊遠程推送服務
  2. APNs經(jīng)過內(nèi)部流程處理生成一個deviceToken硼砰,下發(fā)給Device
  3. Device將獲取到的deviceToken發(fā)送給Provider

推送過程

token_trust_2x.png
  1. APP鏈接APNs的過程中且蓬,APNs會驗證deviceToken,鏈接成功后會維持一個TCP長連接
  2. Provider將消息結合deviceToken封包發(fā)送給APNs
  3. APNs將接收到的消息發(fā)送給deviceToken設備
  4. 設備再將收到的消息通知給APP

server搭建

合成PEM證書

命令行:

  • 生成公鑰
openssl x509 -in aps_development.cer -inform der -out PushPublicCert.pem
  • 生成私鑰
openssl pkcs12 -nocerts -out PushPrivateKey.pem -in Push.p12
  • 將剛才生成的兩個pem文件合成到一個文件中
cat PushPublicCert.pem PushPrivateKey.pem > ck.pem
  • 測試證書是否正常工作
telnet gateway.sandbox.push.apple.com 2195
  • 利用SSL證書和私鑰來設置一個安全的鏈接去鏈接蘋果服務器
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushPublicCert.pem -key PushPrivateKey.pem
openssl s_client -connect api.push.apple.com:443 -cert PushPublicCert.pem -key PushPrivateKey.pem

server code

舊:
開發(fā)環(huán)境:gateway.sandbox.push.apple.com:2195
發(fā)布環(huán)境:gateway.push.apple.com:2195

新:
開發(fā)環(huán)境:api.development.push.apple.com:443
發(fā)布環(huán)境:api.push.apple.com:443

Download_APNsProject

結語

以前僅知道原理题翰,至于服務端如何與蘋果服務器通信沒有一點概念恶阴。于是利用閑暇時間翻閱資料寫了篇關于APNs如何在服務端發(fā)送。爭取不做口頭的巨人行動的矮子(初中的時候班主任就時刻告訴我們這句話豹障,現(xiàn)在基本上拋之腦后 冷汗冯事!冷汗!)血公。目前只是整理了基于SSL協(xié)議的TCP長連接流通訊昵仅,HTTP/2后續(xù)會整理出來。

Reference

AppleDoc——APNs

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末累魔,一起剝皮案震驚了整個濱河市岩饼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逾一,死亡現(xiàn)場離奇詭異,居然都是意外死亡寞冯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門晚伙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吮龄,“玉大人,你說我怎么就攤上這事咆疗±熘悖” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵午磁,是天一觀的道長尝抖。 經(jīng)常有香客問我毡们,道長,這世上最難降的妖魔是什么昧辽? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任衙熔,我火速辦了婚禮,結果婚禮上搅荞,老公的妹妹穿的比我還像新娘红氯。我一直安慰自己,他們只是感情好咕痛,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布痢甘。 她就那樣靜靜地躺著,像睡著了一般茉贡。 火紅的嫁衣襯著肌膚如雪产阱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天块仆,我揣著相機與錄音,去河邊找鬼王暗。 笑死悔据,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的俗壹。 我是一名探鬼主播科汗,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绷雏!你這毒婦竟也來了头滔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤涎显,失蹤者是張志新(化名)和其女友劉穎坤检,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體期吓,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡早歇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了讨勤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箭跳。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖潭千,靈堂內(nèi)的尸體忽然破棺而出谱姓,到底是詐尸還是另有隱情,我是刑警寧澤刨晴,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布屉来,位于F島的核電站路翻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奶躯。R本人自食惡果不足惜帚桩,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘹黔。 院中可真熱鬧账嚎,春花似錦、人聲如沸儡蔓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喂江。三九已至召锈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間获询,已是汗流浹背涨岁。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吉嚣,地道東北人梢薪。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像尝哆,于是被迫代替她去往敵國和親秉撇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容