成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android消息推送完美解決方案全析

移動開發(fā) Android
推送功能在手機應用開發(fā)中越來越重要,已經成為手機開發(fā)的必須。在Android應用開發(fā)中,由于眾所周知的原因,Android消息推送我們不得不大費周折。本文就是用來和大家共同探討一種Android消息推送的完美解決方案。

推送功能在手機應用開發(fā)中越來越重要,已經成為手機開發(fā)的必須。在Android應用開發(fā)中,由于眾所周知的原因,Android消息推送我們不得不大費周折。本文就是用來和大家共同探討一種Android消息推送的***解決方案。

一、消息推送基礎

消息推送,就是在互聯(lián)網上通過定期傳送用戶需要的信息來減少信息過載的一項新技術。推送技術通過自動傳送信息給用戶,來減少用于網絡上搜索的時間。它根據(jù)用戶的興趣來搜索、過濾信息,并將其定期推給用戶,幫助用戶高效率地發(fā)掘有價值的信息

當我們開發(fā)需要和服務器交互的移動應用時,基本上都需要和服務器進行交互,包括上傳數(shù)據(jù)到服務器,同時從服務器上獲取數(shù)據(jù)。

一般情況下,客戶端與服務器之間通訊客戶端是主動的,但這就存在一個問題就是一旦服務器數(shù)據(jù)有更新或者服務器要下發(fā)通知給客戶端只能等客戶端連接的時候才能實現(xiàn)。這種方式使消息失去了實時性。

如何使客戶端能夠實時的收到服務器的消息和通知,總體來說有兩種方式,***種是客戶端使用Pull(拉)的方式,就是隔一段時間就去服務器上獲取一下信息,看是否有更新的信息出現(xiàn)。第二種就是 服務器使用Push(推送)的方式,當服務器端有新信息了,則把***的信息Push到客戶端上。這樣,客戶端就能自動的接收到消息。 

雖然Pull和Push兩種方式都能實現(xiàn)獲取服務器端更新信息的功能,但是明顯來說Push方式比Pull方式更優(yōu)越。因為Pull方式更費客戶端的網絡流量,更主要的是費電量,還需要我們的程序不停地去監(jiān)測服務端的變化。  

二、幾種常見的解決方案實現(xiàn)原理

1)輪詢(Pull)方式:客戶端定時向服務器發(fā)送詢問消息,一旦服務器有變化則立即同步消息。

2)SMS(Push)方式:通過攔截SMS消息并且解析消息內容來了解服務器的命令,但這種方式一般用戶在經濟上很難承受。

3)持久連接(Push)方式:客戶端和服務器之間建立長久連接,這樣就可以實現(xiàn)消息的及時行和實時性。

三、消息推送解決方案概述

A、C2DM云端推送方案

在Android手機平臺上,Google提供了C2DM(Cloudto Device Messaging)服務。Android Cloud to Device Messaging (C2DM)是一個用來幫助開發(fā)者從服務器向Android應用程序發(fā)送數(shù)據(jù)的服務。該服務提供了一個簡單的、輕量級的機制,允許服務器可以通知移動應用程序直接與服務器進行通信,以便于從服務器獲取應用程序更新和用戶數(shù)據(jù)。

該方案存在的主要問題是C2DM需要依賴于Google官方提供的C2DM服務器,由于國內的網絡環(huán)境,這個服務經常不可用。

B、MQTT協(xié)議實現(xiàn)Android推送

采用MQTT協(xié)議實現(xiàn)Android推送功能也是一種解決方案。MQTT是一個輕量級的消息發(fā)布/訂閱協(xié)議,它是實現(xiàn)基于手機客戶端的消息推送服務器的理想解決方案。

wmqtt.jar 是IBM提供的MQTT協(xié)議的實現(xiàn)。我們可以從這里(https://github.com/tokudu/AndroidPushNotificationsDemo)下載該項目的實例代碼,并且可以找到一個采用PHP書寫的服務器端實現(xiàn)(https://github.com/tokudu/PhpMQTTClient)。

C、RSMB實現(xiàn)推送功能

Really Small Message Broker (RSMB) ,是一個簡單的MQTT代理,同樣由IBM提供,其查看地址是:http://www.alphaworks.ibm.com/tech/rsmb。缺省打開1883端口,應用程序當中,它負責接收來自服務器的消息并將其轉發(fā)給指定的移動設備。SAM是一個針對MQTT寫的PHP庫。我們可以從這個http://pecl.php.net/package/sam/download/0.2.0地址下載它.

D、XMPP協(xié)議實現(xiàn)Android推送

Google官方的C2DM服務器底層也是采用XMPP協(xié)議進行的封裝。XMPP(可擴展通訊和表示協(xié)議)是基于可擴展標記語言(XML)的協(xié)議,它用于即時消息(IM)以及在線探測。這個協(xié)議可能最終允許因特網用戶向因特網上的其他任何人發(fā)送即時消息。

androidpn是一個基于XMPP協(xié)議的java開源Android push notification實現(xiàn)。它包含了完整的客戶端和服務器端。但也存在一些不足之處:

1) 比如時間過長時,就再也收不到推送的信息了。

2)性能上也不夠穩(wěn)定。

3)如果將消息從服務器上推送出去,就不再管理了,不管消息是否成功到達客戶端手機上。

如果我們要使用androidpn,則還需要做大量的工作,需要理解XMPP協(xié)議、理解Androidpn的實現(xiàn)機制,需要調試內部存在的BUG。

E、使用第三方平臺

目前國內、國外有一些推送平臺可供使用,但是涉及到收費問題、保密問題、服務質量問題、擴展問題等等,又不得不是我們望而卻步。

四、消息推送***方案

綜合以上論述,在建立Android消息推送方面可謂方案多多,但每一款方案都有其優(yōu)缺點。但無論如何,還是自己搭建一個推送平臺是上策。因為你有、他有不如自己有。

舉個例子,在搭建自有推送平臺上建議使用《某某Android消息推送組件》。該組不僅可以拿來即用,并且還可以提供源碼以便擴展,實現(xiàn)自己的特殊需求。

A、推送原理

Android消息推送組件基于XMPP協(xié)議實現(xiàn)Android推送。XMPP(可擴展通訊和表示協(xié)議)是基于可擴展標記語言(XML)的協(xié)議,它用于即時消息(IM)以及在線探測。這個協(xié)議可能最終允許因特網用戶向因特網上的其他任何人發(fā)送即時消息。

Android消息推送組件實現(xiàn)原理見下圖:

            a.JPG

圖1-消息推送原理圖

Android消息推送組件由服務器部分和客戶端部分組成。每一部分都由XMPP協(xié)議組件和外部接口組件構成。XMPP協(xié)議組件負責服務器和Android客戶端間的連接管理、消息通訊,外部接口組件負責接收應用系統(tǒng)、客戶端應用的命令,向應用系統(tǒng)發(fā)送接收到的通知消息。

Android消息組件提供基于Tomcat的服務器應用和Android開發(fā)jar包。其中基于Tomcat的服務器應用直接在Tomcat上部署即可,Android開發(fā)jar包引入Android項目即可。

B 集成方式

1)服務器部署

Android消息組件Tomcat的服務器應用直接部署在Tomcat中,端口號任意設定。

2)客戶端jar包引用

在Android項目中建立libs目錄,然后將提供的Android開發(fā)jar包復制到該目錄即可。見下圖:

b.JPG

圖2-jar包引入圖

3)Android項目AndroidManifest.xml文件修改

在該文件中增加以下權限:

 

  1. <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
  2.  
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
  4.  
  5. <uses-permission android:name="android.permission.INTERNET" /> 
  6.  
  7. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
  8.  
  9. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
  10.  
  11. <uses-permission android:name="android.permission.VIBRATE" /> 

在該文件中注冊服務:

 

  1.  <service android:enabled="true" 
  2.  
  3.  android:name="com.bjjrs.server.NotificationService" 
  4.  
  5.  android:label="NotificationService"
  6.  
  7.       <intent-filter> 
  8.  
  9.          <action android:name="com.bjjrs.server.NotificationService" /> 
  10.  
  11.      </intent-filter> 
  12.  
  13. </service> 

至此,Android消息組件集成工作完成。

C、接口方式

1)服務器端接口采用基于http協(xié)議的訪問方式,采用http協(xié)議從服務器中獲取各種信息,實現(xiàn)通知消息的推送。

如使用以下方式和參數(shù)就可以實現(xiàn)各種用戶消息的查詢:

http://localhost:8080/user.do?action=getAllUser&isOnline=&userID=&userType=&deptID=&deptName=&realName=

使用如下方式就可以實現(xiàn)各種消息的推送:

http://localhost:8080/notification.do?action=pushNoti&userNames=&title=&content=

2)Android客戶端接口采用廣播機制。

消息接收:當XMPP協(xié)議組件接收到推送消息時,將按照一定格式廣播該消息,通知客戶端其他應用接收并處理該消息。

消息發(fā)送:客戶端應用需要向服務器或者其他客戶端發(fā)送即時消息時,只需按一定格式廣播該消息,XMPP組件就會自動接收該消息并發(fā)送到指定的其他客戶端。

D、優(yōu)勢特點

1)系統(tǒng)集成簡單,無需復雜的設置。

2)Android客戶端應用和Android消息推送組件完全分離,通過接口相互調用,實現(xiàn)模塊應用***化。

3)客戶端通訊機制采用廣播方式,給客戶端應用帶來極大的靈活性和可擴展性,可以自由處理接收到的推送消息。

4)Android消息推送組件在服務器端具備消息存儲、消息重發(fā)、消息路由等功能,在客戶端部分具備斷線重連、、收到確認、閱讀確認、消息發(fā)送、命令執(zhí)行等功能,確保消息能夠推送到客戶端,同時也保證客戶端能夠收到、閱讀消息。

E、 應用范圍

Android消息推送組件可在以下場景中使用:

1)用于消息推送。如:通知下達、應急指揮等。

2)用戶及時消息交互。如在線聊天、工作情況交互等。

3)用于遠程控制。如控制遠程客戶端的狀態(tài)、數(shù)據(jù)上報等。

***,希望轉載的朋友能夠尊重作者的勞動成果,加上轉載地址。

http://bbs.hiapk.com/thread-4652657-1-1.html

責任編輯:閆佳明 來源: bbs.hiapk
相關推薦

2021-02-23 10:34:51

Java 編程開發(fā)

2009-06-10 22:13:55

JavaScriptExcel打印

2009-10-27 15:49:43

2009-10-21 14:22:17

光纖布線解決方案

2011-07-08 09:44:13

虛擬化網絡解決方案

2009-12-29 09:01:49

2009-10-29 10:32:17

接入網解決方案

2009-07-21 11:25:09

視頻通訊產品LifeSize

2014-11-26 09:56:42

企業(yè)郵箱移動辦公解決方案

2025-04-29 04:00:00

分布式事務事務消息

2018-07-03 15:56:59

騰訊

2010-01-27 15:36:35

Android錄音失真

2016-09-22 21:42:48

Android鬧鐘移動

2016-05-27 16:03:43

2011-10-27 16:01:54

工作站解決方案

2014-07-17 00:42:18

Android應用測試方案

2025-06-09 02:00:00

2012-05-27 16:21:31

IDC華為

2018-12-03 12:17:27

Semptian解決方案

2018-12-03 11:59:42

Inventec解決方案
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区国产 | 中文成人在线 | 精品国产乱码久久久久久蜜柚 | 激情五月婷婷 | 亚洲国产视频一区二区 | 99爱在线| 久久av一区二区三区 | 成人在线播放 | 黄视频免费在线 | av黄色国产 | 久久九七 | 亚洲一区三区在线观看 | 国产黄色精品在线观看 | 99久久免费精品国产男女高不卡 | 中文字幕 视频一区 | 亚洲性免费 | 亚洲精品久久久久中文字幕欢迎你 | 91社区视频 | 日韩毛片在线观看 | 中文字幕视频在线观看 | 欧美中文字幕 | 日本午夜网站 | 久久综合影院 | www.天天操.com| 久久99这里只有精品 | 日韩精品激情 | 国产精品免费高清 | 欧美国产视频 | 亚洲精品中文字幕中文字幕 | 亚洲一区二区精品视频 | 99久久久国产精品免费消防器 | 成人欧美一区二区三区在线观看 | 91综合网 | 国产视频中文字幕 | 在线免费观看黄色 | 亚洲精品中文字幕中文字幕 | 成年人免费在线视频 | 超碰在线人人 | 国产精品综合色区在线观看 | 精品伦精品一区二区三区视频 | 日本aⅴ中文字幕 |