接著前面的工作,消息接收之後,要推送給不同的客戶端。關於消息推送,網上有很多方式,http長連接,xmpp協議,還有一個谷歌的貌似叫C2DM的東西。
在此之前,用openfire做了一個小demo,例子是在網上找到的。也可以實現和AndroidPn差不多的一些功能,包括點對點,廣播消息,反正都是xmpp協議的。
客戶端是安卓的,所以,用androidpn。
這個東西是韓國人寫的,官方文檔也都是韓文(呵呵)。
(一)運行源碼
源碼是用myeclipse編譯的,在eclipse裡面,要處理一下,屬性有個project facets,修改一下。也可以新建一個web工程,把原來eclipse裡面的東西拷貝過來,不過比較麻煩。本人采用的就是這種麻煩的方式,不管怎麼樣,這樣自己建立的工程,比較干淨。
其中,會有幾個注意事項,首先是數據源的配置,這個要自己修改為自己的數據庫。源碼用的是hibernate連接,在配置裡面,修改即可。只要數據庫連接的沒問題,其他一般不會報錯。
然後就是跑起來的時候,有些東西會發生404,比如:
這裡面的,home,users,sessions這些按鈕。
因為源碼用的是sitemesh的模板技術,裡面的路徑的地址應該是按照原myeclipse的,這個問題應該是新建項目引起的,修改一下webroot下面decorators裡的default文件,將tabmenu裡面的幾個連接路徑修改一下,去掉前面的/就好了。
(二)源碼運行
當推送消息的時候,會調用NotificationManager類中的sendBroadcast或者sendNotifcationToUser方法。
這裡用的是廣播,裡面會發一個字符串作為消息體。
在我們的項目裡,就可以調用這個方法,來推送消息了。
百度文庫裡有一篇介紹,關於使用該源碼的兩個場景的配置。
http://wenku.baidu.com/link?url=qW7UPz9p3v4VyuNJJc1H7jP4QY4uBKTJtNEBhPJRhakWD_OCN2kXvTLRH0fx7fg7Xd9J-NCX_JlvgjDu-kMnQJCtk_Sgms-6QAGYcqZTFeW
主要是要注意,如果你的項目中也存在spring的話,如果也有數據源,這些bean有可能沖突。