Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> 其實android也可以使用jetty的comet客戶端

其實android也可以使用jetty的comet客戶端

編輯:初級開發

jetty提供了一整套comet方案,cometd2.0也是建立在jetty的httpclIEnt基礎上的。雖然nio是android不支持的,但是仍然可以使用socket來完成comet client. 最好是全部使用源碼,這樣好調試,也好改,雖然不便升級。 jetty client選用7.1.6,可以從eclipse下載全部源碼,真正需要的是jetty-client, jetty-io, jetty-http, jetty-util 把這些源碼取出,直接放入項目src cometd2.0可以從 http://cometd.org/ 下載,需要的是bayeux-api, cometd-java-clIEnt, cometd-Java-common ,把源碼取出,直接放入項目src jetty實際上還需要slf4j log,去 http://www.slf4j.org/android/ 下載android下可用的,但要注意運行起來log name有長度限制,要對jetty util裡作些修改。 org.eclipse.jetty.util.log.Slf4jLog.Slf4jLog() 把名字改短就行。 android項目裡一定放入internet權限: 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 不放的話不會報錯,但永遠也連不上。 連接代碼比較多,要注意的是開頭初始化,要強制使用socket: 
HttpClient httpClient = new HttpClient();
httpClient.setIdleTimeout(5000);
//缺省改為block socket
httpClient.setConnectorType(HttpClient.CONNECTOR_SOCKET);
httpClient.setMaxConnectionsPerAddress(100);
ClientTransport clientTransport = LongPollingTransport.create(null, httpClient);
client = new BayeuxClient(url, clIEntTransport);
如何使用comet可以參見例子:cometd-java-examples ,包含在comet2.0裡,網站上的文檔是1.0的,相差太遠。 使用起來的感覺與socket直連差不多,甚至api上更方便,服務端可以用jetty也可以用tomcat,我是使用grails+plugin,很方便。 異步比較好的方式是 cometd client + cometd server + jms jms可以在處理結果後發channel回client去。client基本上可以立刻收到。 這樣的模式如果直接上web,只要將cometd clIEnt換成JS就行了,直接有jquery+cometd clIEnt,使用起來跟Java差不多。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved