編輯:關於Android編程
WebSocket protocol 是HTML5一種新的協議。它實現了浏覽器與服務器全雙工通信(full-duplex)。WebSocket是Web2.0時代的新產物,用於彌補HTTP協議的某些不足,不過他們之間真實的關系是兄弟關系,都是對socket的進一步封裝,其目前最直觀的表現就是服務器推送和聊天功能。更多知識參考:如何理解 TCP/IP, SPDY, WebSocket 三者之間的關系?
今天的重點是講如何在Android中脫離WebView使用WebSocket,而不是在Web浏覽器使用,如果是在Web浏覽器中使用,網上已經太多教程、框架和demo,沒必要講。
到目前為止我個人認為安卓端比較好用的WebSocketClient有:autobahn、AndroidAsync、Java-WebSocket。好不好用其實需要看實際需求而定,此處我選擇Java-WebSocket。
一、Android客戶端的創建(使用Java-WebSocket庫):
1、其實只需要掌握一個類,WebSocketClient即可
2、指定IP/域名和端口連接服務器,當服務器端有通知時會回調onMessage方法
3、然後調用connect方法進行連接
4、連接後就可以發送消息了,發送消息也很簡單,除了支持String的發送還支持byte發送,好了,客戶端就這麼愉快的寫完了(詳細代碼見後面打包的demo)。
二、服務端的創建:
1-1、Java Application服務端創建(使用Java-WebSocket庫),其實也很簡單,就繼承一個類WebSocketServer:
1-2、然後在main方法中開啟服務端,現在就可以用Android客戶端來連接進行聊天、接收推送了,實在是太簡單了。
2-1、Java Web(tomcat)服務端創建,這裡不使用Java-WebSocket庫,直接使用Java API javax.websocket包中的WebSocket相關類(注意Java API只實現了標准的RFC 6455(JSR256),如果你非要選擇其它早期草案則需要用Java-WebSocket來實現,在Java-WebSocket中連接協議“Draft_17”就是標准的RFC 6455(JSR256),另外要使用Java API javax.websocket包中的WebSocket相關類要求JDK7及以上,Tomcat 7.0.49及以上):
2-2、然後啟動tomcat就可以愉快的用Android客戶端來連接進行聊天、接收推送了。
三、相關截圖:
1-1、Java後台:
1-2、Java後台對應的Android客戶端
2-1、Java Web後台:
2-2、Java Web後台對應的Android客戶端
2-3、html前端(浏覽器):
以上通過圖文並茂的方式給大家介紹了Android中使用WebSocket實現群聊和消息推送功能(不使用WebView) ,希望對大家有所幫助!
我編碼的風格,先給大家展示下效果圖,親們感覺效果還不錯,很滿意的話,請繼續往下閱讀。 之前呢,也寫過用安卓實現二維碼生成彩色的二維碼和帶logo的二維碼,也知道可以使用Q
微信的錢可以轉到支付寶嗎?其實,微信與支付寶,是二大死對頭,都在向移動支付市場發力,所以彼此都不會為對方提供支付入口的。無論是微信,還是支付寶,如果要充值或
在今年GDC上發現一個非常有趣的演講,叫做Animating With Math,遂實現之,是講述頂點shader動畫的,舉了幾個經典的例子,但是講者並沒有給代碼,而是像
Eclipse/ADTADT是Google在Eclipse基礎上封裝了Android開發工具的環境,最新版本是2014年7月2日發布的adt-bundle-windows