qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          AndroidPN真機(jī)環(huán)境測試

            一:AndroidPN環(huán)境配置
            AndroidPN框架實(shí)現(xiàn)了從服務(wù)器到android移動平臺的文本信息推送。下面是AndroidPN的環(huán)境配置
            1.先確保本機(jī)已經(jīng)配置好了java環(huán)境
            2.下載androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip
            網(wǎng)址:http://sourceforge.net/projects/androidpn/
            解壓兩個(gè)包,Eclipse導(dǎo)入client,配置好目標(biāo)平臺,打開raw/androidpn.properties文件,
            apiKey=1234567890
            xmppHost=10.0.2.2
            xmppPort=5222
            如果是模擬器來運(yùn)行客戶端程序,把xmppHost配置成10.0.2.2 (模擬器把10.0.2.2認(rèn)為是所在主機(jī)的地址,127.0.0.1是模擬器本身的回環(huán)地址).
            如果是真機(jī),配置成本機(jī)的IP地址 比如我在局域網(wǎng)內(nèi)的IP是192.168.1.101
            xmppPort=5222 是服務(wù)器的xmpp服務(wù)監(jiān)聽端口(注意5222端口貌似是固定的,我改成其他端口就行了)
            二:運(yùn)行測試
            從命令行運(yùn)行androidpn-server-0.5.0\bin\run.bat啟動服務(wù)器(有些朋友說會一閃而過啟動不了,注意要從命令行進(jìn)入該目錄了在運(yùn)行),從瀏覽器訪問http://127.0.0.1:7070/index.do (androidPN Server有個(gè)輕量級的web服務(wù)器,在7070端口監(jiān)聽請求,接受用戶輸入的文本消息)
            運(yùn)行客戶端,客戶端會向服務(wù)器發(fā)起連接請求,注冊成功后,服務(wù)器能識別客戶端,并維護(hù)和客戶端的IP長連接
            進(jìn)入Notifications界面,輸入消息發(fā)送
            真機(jī)客戶端接受到server推送來的消息
            最后,我把AndroidPN服務(wù)器配置的VPS進(jìn)行測試,同樣的測試成功!

          這樣AndroidPN的環(huán)境就搭好了。真機(jī)環(huán)境也測試通過
            問題:
            1.asmack的包太大,3百多K。
            2.只是完成Android的Push功能使用XMPP協(xié)議感覺很笨重。
            3.androidpn服務(wù)器端的負(fù)載很難控制,除非自己改寫。
            第一個(gè)問題關(guān)系不大,畢竟一個(gè)軟件多了300多K不算什么,如果自己來控制socket連接,我估計(jì)沒有100K也很難控制好。
            第二個(gè)問題確實(shí)如此,使用XMPP的后果是帶來了60%的信息冗余量
            第三個(gè)問題,負(fù)載的控制應(yīng)該來說,用到socket都必須要考慮的,負(fù)載方面,androidpn用到了MINA這個(gè)socket框架,而在socket的處理方面,很多人都是用的socket來處理的。
            總的來說,源代碼的開放是最大的優(yōu)點(diǎn),就算用到androidpn,無論如何也是要在原有的基礎(chǔ)上進(jìn)行修改的,照搬照抄肯定是不行的。但是比自己用socket來控制,在服務(wù)器和客戶端之間建立一個(gè)網(wǎng)關(guān),要來的容易。
            注意:需將lib 沖命名 改為libs,然后在build path里面導(dǎo)入libs這個(gè)包,否則會報(bào)類找不到的錯(cuò)誤
            首先,基礎(chǔ)中的基礎(chǔ),就是按照第一篇日志中所說,使用模擬器完成web推送。這一塊非常簡單,按照第一篇去做完全可行,可能出錯(cuò)的地方就是你忘記更改配置文件了。
            后來我下載了第二篇日志中博主提供的tomcat版本服務(wù)端,放在自己本機(jī)tomcat下,并且啟動。用模擬器去測試發(fā)現(xiàn)無法推送,配置文件也沒有錯(cuò)。檢查后發(fā)現(xiàn),原來自己tomcat的端口是8080,而server中配置的是7070。只要打開config.properties,修改admin.console.port=端口號,即可。
            再接著,用同一個(gè)局域網(wǎng)內(nèi)其他機(jī)子的客戶端模擬器進(jìn)行測試,只要將androidpn.properties中的xmppHost=服務(wù)端所在內(nèi)網(wǎng)IP就可以啦。比如192.168.1.150。
            用真機(jī)測試,其實(shí)和模擬器沒啥區(qū)別,只要配置文件不寫錯(cuò),原則是不會出問題的。但是我測試的時(shí)候,還是出現(xiàn)無法推送成功的問題。仔細(xì)檢查后,原因有二。
            1.客戶端android版本太低,換個(gè)android4.0版本就可以。貌似是不兼容低版本。
            2.真機(jī)上其他的應(yīng)用中,也有應(yīng)用到這個(gè)androidpn的。其中,在androidpn.properties中,apikey默認(rèn)是123456789。因?yàn)槟莻€(gè)應(yīng)用和我自己本機(jī)都選擇了默認(rèn)的,所以我將自己這里的apikey改掉了。切記!這里有一點(diǎn)需要注意的,客戶端androidpn.properties中更改了apikey,服務(wù)端config.properties也要隨之修改。!!
            OK,基本上單獨(dú)的web推送就完成了。
            接下來就是整合到自己項(xiàng)目中,也就是從自己項(xiàng)目后臺將數(shù)據(jù)推送到客戶端,至于androidpn的server端,則作為中間的橋梁。
            這里需要注意一點(diǎn),androidpn會在你本地?cái)?shù)據(jù)庫中新增一個(gè)表apn_user。如果你本地?cái)?shù)據(jù)庫有權(quán)限,拒絕的話,你最好自己先手動增加這么一張表。
            首先,我單獨(dú)啟動一個(gè)新的tomcat,將server端部署到這下面,修改配置文件config。properties,jdbc.properties。jdbc.properties這個(gè)文件是配置你本地?cái)?shù)據(jù)庫的參數(shù)的,不能有錯(cuò)。啟動后,簡單測試成功,在自己項(xiàng)目中使用http協(xié)議將數(shù)據(jù)POST到server端這個(gè)org.androidpn.server.console.controller.NotificationController類的send方法中。具體參數(shù)名稱及獲取參數(shù)的代碼,可以修改server端。
            在這里插一句,不論時(shí)間多么緊張,至少你得追一邊代碼,尤其這個(gè)類。
            代碼寫好后可以執(zhí)行,斷點(diǎn)跟蹤下,只要你代碼正確,配置文件沒錯(cuò),是可以正常推送的。
            基本上,寫到這里的話,應(yīng)該可以滿足項(xiàng)目需求了。如果你還需要將哪些用戶在線的功能整合到你自己項(xiàng)目中。那你就得自己跟蹤下代碼了。
            我項(xiàng)目做到這里,基本上都是在windows環(huán)境下。將項(xiàng)目部署到linux環(huán)境下,又出問題了。
            路徑問題比較容易堅(jiān)決,按照后臺日志中提示的地方,將路徑修改下。
            關(guān)鍵是在linux下重啟server端,會發(fā)現(xiàn)報(bào)錯(cuò),5222端口被占用。因?yàn)闀r(shí)間限制,能力有限,沒辦法修改代碼,只能每次重啟時(shí),都先用命令將5222端口殺掉。

          posted on 2014-01-16 11:35 順其自然EVO 閱讀(3595) 評論(2)  編輯  收藏 所屬分類: android

          評論

          # re: AndroidPN真機(jī)環(huán)境測試[未登錄] 2014-10-27 17:23 123

          的  回復(fù)  更多評論   

          # re: AndroidPN真機(jī)環(huán)境測試 2015-09-14 16:48 cc魯

          androidpn的代碼太亂,已重構(gòu)!  回復(fù)  更多評論   

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清新县| 孟州市| 龙陵县| 广灵县| 满洲里市| 信丰县| 青龙| 西林县| 南召县| 夏津县| 南康市| 汾阳市| 永平县| 菏泽市| 阳信县| 平武县| 五家渠市| 商丘市| 彭山县| 张家界市| 双流县| 兴仁县| 浮梁县| 休宁县| 珲春市| 洛隆县| 隆昌县| 内江市| 修武县| 盱眙县| 东莞市| 保康县| 五河县| 建平县| 遵化市| 张掖市| 岑溪市| 永福县| 积石山| 福贡县| 张家口市|