日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java comet demo,[转]comet4j的简单应用

發布時間:2024/9/18 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java comet demo,[转]comet4j的简单应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

在線Demo體驗

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

功能特性

推送消息廣播。

推送定向消息。

提供連接上線前、上線、下線前、下線、發送消息等多種可處理事件。

消息緩存機制,確保長輪詢工作模式下不丟失消息。

客戶端正常下線,服務端可立即感知。

客戶端異常停止工作,服務端可定時檢查并感知。

以注冊通道應用的方式,讓開發者對框架功能進行擴展,實現自己的應用。

框架特性

獨立小巧,不依賴于第三方包。

與應用緊密集成,無需獨立應用或服務器。

與Session無關的連接機制,為開發人員提供最大程度的功能可控性。

面向事件編程,客戶端與服務器端均為事件驅動開發模式,提供了良好的可擴展性機制。

各項性能參數均可配置。

支持多種主流瀏覽器,并支持Air應用環境。

服務器支持情況

Tomcat6、Tomcat7

瀏覽器支持情況

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

瀏覽器/平臺

長輪詢

長連接

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

未測試

未知

未知

BlackBerry

未測試

未知

未知

?

class="Apple-converted-space">?

?

?

?

?

?

準備工作

1.下載服務端jar文件

2.下載客戶端js文件

3.修改服務器配置文件

客戶端

服務端

配置

準備工作

1.下載服務端jar文件

Comet4J目前僅支持Tomcat6、7版本,根據您所使用的Tomcat版本下載【comet4j-tomcat6.jar】或【comet4j-tomcat7.jar】文件放置到WEB項目的WEB-INF\lib目錄下。

2.下載客戶端js文件

下載【comet4j.js】到您的項目中,比如:WebContent\js目錄下。

3.修改服務器配置文件

因為Comet4J工作在NIO方式下,所以我們需要調整服務器連接器配置,更換為NOI連接器。 打開server.xml文件將找到原先的連接器配置:

?

替換為:

?

客戶端

我們利用Comet4J開發一個每隔一秒向所有客戶端推送服務器的剩余內存大小。 helloworld.html

Comet4J Hello World

function init(){

??????? var kbDom = document.getElementById('kb');

??????? JS.Engine.on({

??????????????? hello : function(kb){//偵聽一個channel

??????????????????????? kbDom.innerHTML = kb;

??????????????? }

??????? });

??????? JS.Engine.start('conn');

}

??????? 剩余內存:...KB

服務端

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);//注冊應用的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

??????????????? Comet4J容器偵聽

??????????????? org.comet4j.core.CometAppListener

???????

???????

??????????????? Comet連接[默認:org.comet4j.core.CometServlet]

??????????????? CometServlet

??????????????? CometServlet

??????????????? org.comet4j.core.CometServlet

???????

???????

??????????????? CometServlet

??????????????? /conn

???????

? HelloWorld

? org.comet4j.demo.helloworld.HelloWorld

轉載自:

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

總結

以上是生活随笔為你收集整理的java comet demo,[转]comet4j的简单应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。