日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android消息推送之Androidpn_Demo版到正式上線

最近公司需要android的消息推送,在網(wǎng)上找了很多消息推送的例子,都是無法運行.

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了夏河免費建站歡迎大家使用!

經(jīng)過一段時間的研究,終于把例子運行起來了.現(xiàn)在共享出來,共同學(xué)習(xí).

在下載的文件里面在bin目錄下有run.bat文件直接雙擊即可運行.然后在瀏覽器里面輸入

http://127.0.0.1:7070即可,如果在eclipse中運行了客戶端即可在服務(wù)器端看到.這個很簡單,不是本文的重點.現(xiàn)在主要的就是把下載后的的服務(wù)器端源碼搭建起來,然后部署到myeclipse中運行,當(dāng)然可以在androidpn的官網(wǎng)下載(http://sourceforge.net/projects/androidpn/files/),

也可以下載我已經(jīng)調(diào)好的程序.現(xiàn)在把源碼共享給大家,http://download.csdn.net/detail/johnny901114/4410546

需要注意的是我的這個源碼使用數(shù)據(jù)庫是mysql,所以讀者的pc機(jī)上需要安裝mysql數(shù)據(jù)庫,關(guān)于數(shù)據(jù)這里就不多說了.當(dāng)然最好能夠懂點spring和hibernate,這樣的話改的時候更加順手.

但是可能還有不懂hibernate的人,為了能夠讓他很好的運行,這里就簡單的說一下了.

過程:

首先打開jdbc.properties:

 
 
 
 
  1. # JDBC Configuration 
  2. jdbcDriverClassName=com.mysql.jdbc.Driver 
  3. jdbcUrl=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 
  4. hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
  5. jdbcUsername=root 
  6. jdbcPassword= 
  7. # DBCP Pool settings 
  8. jdbcInitialSize=5 
  9. jdbcMaxActive=10 
  10. jdbcMaxIdle=5 
  11. jdbcMaxWait=30000 
  12. jdbcValidationQuery=select 1

jdbcDriverClassName:表示數(shù)據(jù)庫驅(qū)動的類名

jdbcUrl:表示連接數(shù)據(jù)庫的url,其中test是數(shù)據(jù)庫的名稱

hibernate.dialect: 數(shù)據(jù)庫方言

jdbcUsername和jdbcPassword:mysql的用戶名和密碼

其他的就不多說了.

如果沒有以外的話,服務(wù)器啟動成功后,可以在瀏覽器里輸入:http://localhost:8080/

就可以出現(xiàn)如下界面:

然后,運行客戶端代碼,需要注意的是把a(bǔ)ndroidpn.properties中的xmppHost改為你的局域網(wǎng)ip地址.運行如下圖所示:

然后在瀏覽器中的Users界面可以看到手機(jī)與服務(wù)器之間的連接.如:

然后在Notifications界面可以發(fā)送消息給客戶端:

在客戶端就收到了通知:

其中通知里面的內(nèi)容就是網(wǎng)頁中message輸入的內(nèi)容.ok按鈕就是網(wǎng)頁中uri的內(nèi)容.

最后還有一個問題當(dāng)我們服務(wù)器端重啟的時候,客戶端就無法在連接到服務(wù)器了,除非把a(bǔ)ndroid后臺的服務(wù)關(guān)掉,然后重啟才行.在XmmpManager中加上如下紅色代碼就可:

 
 
 
 
  1. private void addTask(Runnable runnable) { 
  2.         Log.d(LOGTAG, "addTask(runnable)..."); 
  3.         taskTracker.increase(); 
  4.         synchronized (taskList) { 
  5.             if (taskList.isEmpty() && !running) { 
  6.                 running = true; 
  7.                 futureTask = taskSubmitter.submit(runnable); 
  8.                 if (futureTask == null) { 
  9.                     taskTracker.decrease(); 
  10.                 } 
  11.             } else { 
  12.             //解決服務(wù)器端重啟后,客戶端不能成功連接androidpn服務(wù)器 
  13.             runTask(); 
  14.                 taskList.add(runnable); 
  15.             } 
  16.         } 
  17.         Log.d(LOGTAG, "addTask(runnable)... done"); 
  18.     }

后續(xù):

今天公司終于把Androidpn服務(wù)器端部署到服務(wù)器端了,終于真正的上線了.

大體步驟如下:

1,把服務(wù)器的程序通過myeclipse到處war包,然后訪問tomcat首頁,把war包上傳到tomcat服務(wù)器.

點擊 Tomcat Manager出現(xiàn)如下界面:

在默認(rèn)的情況下登錄不成功,需要在tomcat-user.xml文件中配置,在該文件的加上如下配置:

 
 
 
 
  1.  
  2.  

然后通過如下界面把war包上傳到tomcat上:

注意需要在服務(wù)器電腦上有相應(yīng)數(shù)據(jù)庫(我這個里是mysql),并且有Androidpn對應(yīng)的數(shù)據(jù)庫(我這里的數(shù)據(jù)庫名為test).并且還要注意數(shù)據(jù)庫的用戶名和密碼.

2,假設(shè)服務(wù)器端已經(jīng)能夠訪問了,需要把客戶端的androidpn.properties文件的xmppHost的值改成你服務(wù)器端的主機(jī)名稱,假設(shè)你的服務(wù)器端訪問地址為:http://push.android.net:8080/ ,那么把xmppHost的值改成push.android.net

3,注意把你的8080端口和5222端口打開(這里是服務(wù)器那邊的人搞的自己不是很懂).

后續(xù)二 :關(guān)于Androidpn的一些問題

1,如果把客戶端的隨機(jī)生成的UUID代碼,改成把設(shè)備的id或者mac(device/mac)作為用戶名,會出現(xiàn)重復(fù)插入的錯誤.

2,把客戶端的數(shù)據(jù)清除(或者重新安裝),那么sharedPre里的數(shù)據(jù)也會沒有,然而服務(wù)器端又有我們手機(jī)的設(shè)備id,然后啟動程序又會出現(xiàn)重復(fù)插入的問題.

所以解決方案為,在服務(wù)器端保存用戶的時候,檢查數(shù)據(jù)時候存在該用戶.

因為在客戶端來說自己有沒有注冊到服務(wù)器端,通過SharedPreferences里面是否存在username和password.

后續(xù)三 :關(guān)于Android推送的其他方式

其他的推送方案 : 

1> android官網(wǎng)最新提供的 , GCM ,是用來代替的C2DM , 其官網(wǎng)為 http://developer.android.com/google/gcm/index.html

2> 可以通過Java nio來實現(xiàn)自己的服務(wù)器, 聽同事說它的經(jīng)理自己通過Java NIO寫了一個推送服務(wù)器 可以接收30w左右的并發(fā), 自己正在嘗試寫一個 , 如果有進(jìn)展 , 一定會共享給大家 . 同時可以研究apache的項目mina 該項目就是封裝Java NIO的 . 

3> 當(dāng)然可以使用XMPP協(xié)議來實現(xiàn)推送的. 自己也曾寫過簡單的一對一即時聊天軟件.

4> 也可以通過MQTT協(xié)議來實現(xiàn)推送 . 

     客戶端下載地址: https://github.com/tokudu/AndroidPushNotificationsDemo 

     服務(wù)器下載地址 : https://github.com/tokudu/PhpMQTTClient


網(wǎng)頁標(biāo)題:Android消息推送之Androidpn_Demo版到正式上線
瀏覽地址:http://www.5511xx.com/article/dpispos.html