亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[轉(zhuǎn)]comet4j的簡(jiǎn)單應(yīng)用

系統(tǒng) 1846 0

Comet4J(Comet for Java)是一個(gè)純粹基于AJAX(XMLHTTPRequest)的服務(wù)器推送框架,消息以JSON方式傳遞,具備長(zhǎng)輪詢、長(zhǎng)連接、自動(dòng)選擇三種工作模式。

在線Demo體驗(yàn)

http://www.comet4j.org:8080/comet4j/

功能特性

  • 推送消息廣播。
  • 推送定向消息。
  • 提供連接上線前、上線、下線前、下線、發(fā)送消息等多種可處理事件。
  • 消息緩存機(jī)制,確保長(zhǎng)輪詢工作模式下不丟失消息。
  • 客戶端正常下線,服務(wù)端可立即感知。
  • 客戶端異常停止工作,服務(wù)端可定時(shí)檢查并感知。
  • 以注冊(cè)通道應(yīng)用的方式,讓開發(fā)者對(duì)框架功能進(jìn)行擴(kuò)展,實(shí)現(xiàn)自己的應(yīng)用。

框架特性

  • 獨(dú)立小巧,不依賴于第三方包。
  • 與應(yīng)用緊密集成,無需獨(dú)立應(yīng)用或服務(wù)器。
  • 與Session無關(guān)的連接機(jī)制,為開發(fā)人員提供最大程度的功能可控性。
  • 面向事件編程,客戶端與服務(wù)器端均為事件驅(qū)動(dòng)開發(fā)模式,提供了良好的可擴(kuò)展性機(jī)制。
  • 各項(xiàng)性能參數(shù)均可配置。
  • 支持多種主流瀏覽器,并支持Air應(yīng)用環(huán)境。

服務(wù)器支持情況

Tomcat6、Tomcat7

瀏覽器支持情況

支持XMLHTTPRequest對(duì)象的瀏覽器均可支持長(zhǎng)輪詢工作模式,但不一定能夠支持長(zhǎng)連接。

瀏覽器/平臺(tái) 版本 長(zhǎng)輪詢 長(zhǎng)連接
Internet Explorer 6,7,8,9 X
FireFox 3.0+(更底版本未知)
Chrome 7.0+(更底版本未知)
Safari 5+(更底版本未知)
Opera 11.10+(更底版本未知) X
Air 1.5+(更底版本未知)
IOS(Iphone/Ipad) 3.1+(更底版本未知)
Android 未測(cè)試 未知 未知
BlackBerry 未測(cè)試 未知 未知

?

? ? ? ? ?

?

準(zhǔn)備工作
1.下載服務(wù)端jar文件
2.下載客戶端js文件
3.修改服務(wù)器配置文件
客戶端
服務(wù)端
配置
準(zhǔn)備工作
1.下載服務(wù)端jar文件
Comet4J目前僅支持Tomcat6、7版本,根據(jù)您所使用的Tomcat版本下載【comet4j-tomcat6.jar】或【comet4j-tomcat7.jar】文件放置到WEB項(xiàng)目的WEB-INF\lib目錄下。
2.下載客戶端js文件
下載【comet4j.js】到您的項(xiàng)目中,比如:WebContent\js目錄下。
3.修改服務(wù)器配置文件
因?yàn)镃omet4J工作在NIO方式下,所以我們需要調(diào)整服務(wù)器連接器配置,更換為NOI連接器。 打開server.xml文件將找到原先的連接器配置:
? <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
替換為:
? <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>
客戶端
我們利用Comet4J開發(fā)一個(gè)每隔一秒向所有客戶端推送服務(wù)器的剩余內(nèi)存大小。 helloworld.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Comet4J Hello World</title>
<script type="text/javascript" src="js/comet4j-0.0.2.js"></script>
<script type="text/javascript">
function init(){
??????? var kbDom = document.getElementById('kb');
??????? JS.Engine.on({
??????????????? hello : function(kb){//偵聽一個(gè)channel
??????????????????????? kbDom.innerHTML = kb;
??????????????? }
??????? });
??????? JS.Engine.start('conn');
}
</script>
</head>
<body onload="init()">
??????? 剩余內(nèi)存:<span id="kb">...</span>KB
</body>
</html>
服務(wù)端
helloworld.java

package org.comet4j.demo.helloworld;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.comet4j.core.CometContext;
import org.comet4j.core.CometEngine;

public class HelloWorld implements ServletContextListener {
??????? private static final String CHANNEL = "hello";
??????? public void contextInitialized(ServletContextEvent arg0) {
??????????????? CometContext cc = CometContext.getInstance();
??????????????? cc.registChannel(CHANNEL);//注冊(cè)應(yīng)用的channel
??????????????? Thread helloAppModule = new Thread(new HelloAppModule(), "Sender App Module");
??????????????? helloAppModule.setDaemon(true);
??????????????? helloAppModule.start();

??????? }

??????? class HelloAppModule implements Runnable {
??????????????? public void run() {
??????????????????????? while (true) {
??????????????????????????????? try {
??????????????????????????????????????? Thread.sleep(1000);
??????????????????????????????? } catch (Exception ex) {
??????????????????????????????????????? ex.printStackTrace();
??????????????????????????????? }
??????????????????????????????? CometEngine engine = CometContext.getInstance().getEngine();
??????????????????????????????? engine.sendToAll(CHANNEL, Runtime.getRuntime().freeMemory()/1024);
??????????????????????? }
??????????????? }
??????? }

??????? public void contextDestroyed(ServletContextEvent arg0) {

??????? }
}
配置
web.xml

<listener>
??????????????? <description>Comet4J容器偵聽</description>
??????????????? <listener-class>org.comet4j.core.CometAppListener</listener-class>
??????? </listener>
??????? <servlet>
??????????????? <description>Comet連接[默認(rèn):org.comet4j.core.CometServlet]</description>
??????????????? <display-name>CometServlet</display-name>
??????????????? <servlet-name>CometServlet</servlet-name>
??????????????? <servlet-class>org.comet4j.core.CometServlet</servlet-class>
??????? </servlet>
??????? <servlet-mapping>
??????????????? <servlet-name>CometServlet</servlet-name>
??????????????? <url-pattern>/conn</url-pattern>
??????? </servlet-mapping>

<listener>
? <description>HelloWorld</description>
? <listener-class>org.comet4j.demo.helloworld.HelloWorld</listener-class>
</listener>

轉(zhuǎn)載自:

http://code.google.com/p/comet4j/wiki/HelloWorld ?

[轉(zhuǎn)]comet4j的簡(jiǎn)單應(yīng)用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美激情影院 | 欧美日韩黄色大片 | 四虎最新免费观看网址 | www午夜视频 | 俄欧美做爰xxxⅹ在线视频 | 欧美美女一区二区三区 | 日日干天天操 | 久久这里只有精品久久 | 四虎影院在线看 | 久久精品免视看国产盗摄 | 久久精品一区二区三区中文字幕 | 四虎成人精品在永久在线观看 | 96精彩视频在线观看 | 亚洲高清一区二区三区四区 | 久久综久久美利坚合众国 | 日日夜夜亚洲 | 日韩免费观看一级毛片看看 | 国产成人精品综合久久久 | 久久久亚洲| 亚洲欧美日韩一区成人 | 亚洲线精品久久一区二区三区 | 国产成人精品久久免费动漫 | 欧美成人aaaaa免费视频 | 久久剧场| 亚洲美女免费视频 | 国产一区二区中文字幕 | 亚洲欧美一区二区三区久久 | 四虎精品国产一区二区三区 | 精品色视频| 亚洲成人免费在线视频 | 精品精品国产自在香蕉网 | 狠狠色综合久久婷婷 | 国产精品66 | 97干干干| 久青草视频在线观看 | 欧美在线看片 | 久久毛片免费看 | 中文偷拍视频在线观看 | 第一区免费在线观看 | 中文字幕日韩精品亚洲七区 | 在线视频a|