幾種常看法決消息即時獲取方案服務器
1)輪詢(Pull)方式:客戶端定時向服務器發送詢問消息,一旦服務器有變化則當即同步消息spa
2)SMS(短信消息)(Push)方式:經過攔截SMS消息而且解析消息內容來了解服務器的命令,但這種方式通常用戶在經濟上很難承受同步
3)持久鏈接(Push)方式:客戶端和服務器之間創建長久鏈接,這樣就能夠實現消息的及時性和實時性原理
及時推送原理:百度
* 傳統獲取服務器數據使用的是pull模式,是客戶端想服務器請求數據。從客戶端發起鏈接請求,獲取到服務器數據後就關閉鏈接。當鏈接斷開後,服務器就會失去客戶端的地址,所以沒法主動向客戶端發送消息請求
* 推送(push)是服務主動向客戶端發送數據。它的原理是保持一個長鏈接,當客戶單和服務器創建鏈接猴再也不斷開,這樣服務器隨時有新消息均可以發送給客戶端。通信
長鏈接數據
指在一個TCP鏈接上能夠連續發送多個數據包,在TCP鏈接保持期間,若是沒有數據包發送,須要雙方發檢測包以維持此鏈接客戶端
短鏈接推送
指通訊雙方有數據交互時,就創建一個TCP鏈接,數據發送完成後,則斷開此TCP鏈接,即每次TCP鏈接只完成一對
* 至於如何獲取推送消息。因爲服務端傳來消息的時間是不肯定的,這裏只能等待推送SDK的回調,好比經過註冊監聽或者廣播接受者。不一樣的廠商的推送SDK可能會有不一樣的處理方案,以百度推送SDK來講,是經過廣播接收者獲取推送數據