1、 工程说明
java project——CometSocket包含一个类:
Calculate.java:作为客户端,往服务器发送数据
web project——CometServer包含:
ReceiverServlet.java:接收客户端数据,并模拟入库(以存入文件的形式)
TestServlet.java:模拟从库中取数据(从文件中取值)并推送给浏览器展示
index.jsp:接收从服务端推送出来的数据并展示
2、部分代码说明
Calculate.java
public void sendData(ActionEvent e)
{
try
{
//发送数据
txtResult.setText(e.getActionCommand());
URL url = new URL("http://localhost:8080/CometServer/rs?num="+txtResult.getText());
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestProperty("Content-Type", "text/html"); //application/xml
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setReadTimeout(2*1000);
int code = httpURLConnection.getResponseCode();
System.out.println("code_______________"+code);
}
通过http get请求方式将数据发送给客户端
ReceiverServlet.java
public void service(HttpServletRequest request ,HttpServletResponse response){
FileOutputStream fos = null;
try
{
String str = request.getParameter("num");
System.out.println("get________________________________"+str);
File file = new File("D:/1.txt");
fos = new FileOutputStream(file);
if(str != null){
fos.write(str.getBytes());
}
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fos != null){
try
{
fos.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
接收数据并模拟入库
TestServlet.java
public void event(CometEvent event) throws IOException, ServletException
{
// 开始
if(event.getEventType() == EventType.BEGIN){
try
{
Thread.sleep(100);
File file = new File ("D:/1.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String str = br.readLine();
System.out.println("ddd1_________"+str);
if( str != null){
HttpServletResponse response = event.getHttpServletResponse();
PrintWriter out = response.getWriter();
out.write(str);
out.flush();
out.close();
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(event.getEventType() == EventType.END){
System.out.println("ddd2");
event.close();
}
}
定时向服务器推送数据
3、运行
tomcat配置: 要使用 Comet,需要对 Tomcat 的配置文件 server.xml 稍作修改。默认情况下启用的是更典型的同步 IO 连接器。现在只需将它切换成异步版本.
<!-- Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080"
protocol="HTTP/1.1" redirectPort="8443"/ -->
<Connector connectionTimeout="20000" port="8080"
protocol="org.apache.
coyote.http11.Http11NioProtocol" redirectPort="8443"/>
源码和效果图,如附件:
启动web工程,点击“start”
运行Calculate.java
- 大小: 31.2 KB
分享到:
相关推荐
tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不刷新显示。tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不刷新显示。tomcat实现comet例子,实现后台产生每隔几秒产生随机数,前台不...
使用comet4j功能所必需的js文件以及jar包资源(comet4j-tomcat7)
comet4j+tomcat6+tomcat7并附完整版Demo,解决java后端向去前台推送信息的问题
NULL 博文链接:https://tomyz0223.iteye.com/blog/684252
长轮询Prototype+comet源代码
导入即可运行,包括下面jar。 jar包: ...全网搜索dojox.cometd实现WEBQQ,没有可以运行的源码包项目,搞了五天,分享给大家,真实可用,jar包就找了好久,花了5分,搞了5天5分。共10分。 付原作者地址: ...
属于javaEE技术,对着源码讲解。视频可到优酷http://v.youku.com/v_show/id_XNTQ0NzQxMzYw.html?f=19180666或者直接搜名字。密码见文档
NULL 博文链接:https://tomenjoy.iteye.com/blog/899715
使用springMvc为框架基础结合ibatis作为持久层,easyui作为前台框架并运用了jstl的标签库,加入了comet4j来实现实时推送
comet4j-tomcat6,comet4j-tomcat7,comet4j.js,comet4j.js,以及一个样例
comet4j 简单例子 + 文档 + jar + tomcat7 + 解压导入eclipse即可用。
通过tomcat服务器,向网页发送即时消息。comet的小例子,可以直接运行,用tomcat6.0。
tomcat7后台服务器,java项目实现后台推送信息到客户端浏览器
Comet实现聊天室 运行时请将Tomcat的server.xml文件内的 connectionTimeout="20000" redirectPort="8443" /> 改为 connectionTimeout="20000" redirectPort="8443" /> 登陆的时候请记得先修改index.jsp...
comet4j+tomcat7 简单demo,内含源代码与操作手册,可直接部署后使用
comet4j-tomcat6、comet4j-tomcat7 的jar包和comet4j.js资源下载
comet4j消息推送所需的comet4j-tomcat7.jar包,comet4j-tomcat7.jar
Comet模式是一种服务器端推技术,它的核心思想提供一种能让当服务器端往客户端发送数据的方式。本篇文章主要介绍了Tomcat如何实现Comet,有兴趣的可以了解一下。