一:AndroidPN環境配置
AndroidPN架構實現了從伺服器到android移動平台的文本資訊推送。下面是AndroidPN的環境配置
1.先確保本機已經配置好了java環境
2.下載androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip
網址:http://sourceforge.net/projects/androidpn/
解壓兩個包,Eclipse匯入client,配置好目標平台,開啟raw/androidpn.properties檔案,
apiKey=1234567890
xmppHost=10.0.2.2
xmppPort=5222
如果是模擬器來運行用戶端程式,把xmppHost配置成10.0.2.2 (模擬器把10.0.2.2認為是所在主機的地址,127.0.0.1是模擬器本身的迴環地址).
如果是真機,配置成原生IP地址 比如我在區域網路內的IP是192.168.1.101
xmppPort=5222 是伺服器的xmpp服務監聽連接埠(注意5222連接埠貌似是固定的,我改成其他連接埠就行了)
二:運行測試
從命令列運行androidpn-server-0.5.0\bin\run.bat啟動伺服器(有些朋友說會一閃而過啟動不了,注意要從命令列進入該目錄了在運行),從瀏覽器訪問http://127.0.0.1:7070/index.do (androidPN Server有個輕量級的web伺服器,在7070連接埠監聽請求,接受使用者輸入的簡訊)
運行用戶端,用戶端會向伺服器發起串連請求,註冊成功後,伺服器能識別用戶端,並維護和用戶端的IP長串連
進入Notifications介面,輸入訊息發送
真機用戶端接受到server推送來的訊息
最後,我把AndroidPN伺服器配置的VPS進行測試,同樣的測試成功!
這樣AndroidPN的環境就搭好了。真機環境也測試通過
問題:
1.asmack的包太大,3百多K。
2.只是完成Android的Push功能使用XMPP協議感覺很笨重。
3.androidpn伺服器端的負載很難控制,除非自己改寫。
第一個問題關係不大,畢竟一個軟體多了300多K不算什麼,如果自己來控制socket串連,我估計沒有100K也很難控制好。
第二個問題確實如此,使用XMPP的後果是帶來了60%的資訊冗餘量
第三個問題,負載的控制應該來說,用到socket都必須要考慮的,負載方面,androidpn用到了MINA這個socket架構,而在socket的處理方面,很多人都是用的socket來處理的。
總的來說,原始碼的開放是最大的優點,就算用到androidpn,無論如何也是要在原有的基礎上進行修改的,照搬照抄肯定是不行的。但是比自己用socket來控制,在伺服器和用戶端之間建立一個網關,要來的容易。
不知道兄弟你是怎麼實現的推送?
http://dev.10086.cn/cmdn/bbs/thread-62765-1-1.html
/**
* @author 張興業* http://blog.csdn.net/xyz_lmn* iOS入門群:83702688
* android開發進階群:241395671
* 我的新浪微博:@張興業TBOW*/