以tomcat6为例首先下载comet4j-tomcat6.jar和comet4j.jar后将jar报引入工程,然后在tomcat中找到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"/>;
在web.xml中配置<listener>
<description>Comet4J容器侦听</description>
<listener-class>org.comet4j.core.CometAppListener</listener-class>
</listener>
<servlet>
<description>默认不用修改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>别名</description>
<listener-class>实现的类的包明+类名</listener-class>
</listener>
前台html页面
首先在页面引入<script type="text/javascript" src="js/comet4j.js"></script>
名称是:<span id="name"></span> 成绩:<span id="tagCom"></span>
function init(){
var kbDom = document.getElementById("tagCom");
var kdc=document.getElementById("name");
JS.Engine.on({
isAlrem : function(non){//侦听一个channel
kdc.innerHTML=non.tag;
kbDom.innerHTML=non.score;
}
});
JS.Engine.start('conn');
}
后台java代码
public class MessageSender implements ServletContextListener {
private static final String CHANNEL = "isAlrem";
public void contextInitialized(ServletContextEvent arg0) {
CometContext cc = CometContext.getInstance();
cc.registChannel(CHANNEL);//注册应用的channel
Thread sendalrem = new Thread(new SendAlrem(), "");
sendalrem.setDaemon(true);
sendalrem.start();
}
class SendAlrem implements Runnable {
public void run() {
while (true) {
try {
Thread.sleep(4000);
} catch (Exception ex) {
ex.printStackTrace();
}
OneStrutsAlrem on=new OneStrutsAlrem();
on.setScore(90));
on.setTag("1A1");
CometEngine engine = CometContext.getInstance().getEngine();
//这里必须将对象变成json然后在推送到前台页面上面
engine.sendToAll(CHANNEL,JSONObject.fromObject(on));
}
}
}
public void contextDestroyed(ServletContextEvent arg0) {
}
}
分享到:
相关推荐
服务器推送是指服务器主动将数据推送到客户端,而不是传统的客户端发起请求获取数据的方式。这种方式提高了实时性,特别适用于需要实时更新数据的应用,如股票交易、在线聊天、游戏等场景。 三、DWR服务器推送的...
但在服务器推送技术中,服务器主动将数据推送到客户端,而无需客户端发起新的请求。这种技术对于实时性要求高的应用,如聊天室、股票交易、在线游戏等,具有显著优势。 **DWR的服务器推送实现**: DWR使用一种称为...
3. 在客户端,编写代码监听服务器推送的事件,并处理接收到的数据。 4. 在服务器端,编写推送数据的方法,可能需要定时或者根据某些条件触发。 总的来说,这个"DWR Java推送例子 免积分"提供了一个学习和实践DWR...
3. 在服务器端,JSP接收到消息后进行处理,可以将消息保存到数据库或队列中,并触发服务器推送。 4. 实现服务器推送,可以通过Comet技术(如长轮询)或者WebSocket。在这个例子中,考虑到标签提及了“jsp聊天”,...
Java Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器和Java服务器之间进行双向通信,从而实现在Web应用中的实时交互。DWR使得前端开发者能够轻松地调用后端的Java方法,仿佛它们是本地...
本文将详细讲解如何使用Java通过极光推送(JPush)实现基于tag的定期定时推送,以及如何将这个功能整合到自己的项目中。 首先,我们需要了解极光推送(JPush)的基本概念。极光推送是深圳市梦网科技发展有限公司...
Comet4J是一个基于Java的服务器推送框架,它允许Web服务器主动向客户端浏览器推送数据,而不仅仅是响应客户端的请求。这种双向通信模式打破了传统的HTTP协议的限制,使得实时性得以提升。 1. **Comet技术原理**: ...
**DWR(Direct Web Remoting)服务器推送技术详解与WebQQ实现** DWR,全称为Direct Web Remoting,是一种在JavaScript和Java之间进行远程方法调用(Remote Method Invocation,RMI)的技术,允许Web应用程序实现...
【标题】"基于AJAX(XMLHTTPRequest)的服务器推送框架.zip" 涉及的主要知识点是AJAX(异步JavaScript和XML)技术以及XMLHttpRequest对象在实现服务器推送中的应用。AJAX是一种网页开发技术,它允许网页在不刷新整个...
对于消息推送,你需要设置一个回调函数来处理服务器推送给客户端的新消息。 7. **DWR的调试与日志** DWR提供了强大的调试工具和日志记录功能,可以帮助开发者在开发过程中快速定位问题,优化性能。 8. **运行与...
5. **事件处理:** 当服务器推送消息时,JavaScript会接收到通知,然后根据需求更新页面或者触发其他客户端事件。 6. **安全性和优化:** 考虑到性能和安全性,可能需要限制长连接的数量,进行连接管理和超时处理,...
DWR的核心是通过创建一个代理,这个代理可以调用服务器上的Java方法,并将结果返回到客户端。在JavaScript中,我们可以像操作本地对象一样操作这些远程对象,从而实现前后端的通信。 对于"前台监控",DWR提供了多种...
WebSocket是一种双向通信协议,可以实现实时推送,而长轮询则是客户端定期询问服务器是否有新信息,直到收到响应。 具体到实际操作,以下是一些关键步骤: 1. 创建JSP页面,包含登录表单,使用JavaScript处理表单...
三、指定推送对象 1. 别名与标签:JPush支持通过别名和标签来精准推送。别名是针对单个用户的唯一标识,标签则可以看作是一组用户的集合。在客户端设置别名和标签: ```java JPushInterface.setAliasAndTags(this, ...
**iOS推送Java服务端文档详解** 在iOS应用开发中,为了实现远程通知功能,苹果公司提供了Push Notification Service(PNS),使得开发者可以向用户的设备发送消息,即使应用没有在前台运行也能接收到这些消息。本文...
在客户端,Comet可以与JavaScript结合,通过XMLSocket或IFrame/htmlfile等手段接收服务器推送的数据。 - Flash XMLSocket方案:利用Flash提供的XMLSocket类,结合JavaScript调用Flash接口实现套接字通信。这种方法...
服务器端有一个“挂起”的HTTP请求,当有新数据可用时,服务器会将数据推送到这个请求中,然后浏览器接收到数据并更新页面。 6. **安全与权限控制**:DWR提供了安全机制,如白名单配置,防止未经授权的JavaScript...
Comet4j就是一种基于Java实现的服务器推送技术框架,旨在简化实时Web应用的开发过程。本资源包包含了实现Comet4j功能所需的关键组件,包括`comet4j.js`脚本文件和`comet4j-tomcat7.jar`服务器端库。 首先,让我们...
通过创建WebSocket对象,与服务器建立连接,然后监听连接状态变化,接收服务器推送的数据,并将这些数据显示在页面上。JavaScript的Event Loop机制使得在接收到新消息时能及时响应。 3. **Spring MVC框架**:后端...