现在有一个项目:
需要用到一个http长连接。实现例如像新浪微博的,有新微博来临的提示功能:
其实思路还是比较简单的:
tomcat中的soket连接,是可以做到的。它里面的源码的思路,是有个计数,还有http协议的keep-alive表示,还有
set_time_out的过期时间。这三个参数决定了连接时间的长短,每来一个请求,请求计数减减,见到0断开连接, keep-
alive在http请求中,保持连接,time_out时间是请求最后一次接到请求后,这个time_out时间后,还没有请求,断开连
接。具体思路大概如此,具体情况还要看源码。
那么我们需要在一个action中,用一个死循环hold住这个连接。
如下代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try
{
while(true)
{
//in order to test the socket weather is connected,
//when the IOexception happened, let the while quit, determinate the loop.
//don't change this code,otherwise i will kick your ass!!
//bard 2012-01-06
response.flushBuffer();
PrintWriter out=response.getWriter();
out.print("<script>" +
"alert('bard ok');" +
"</script>");
out.flush();
Thread.sleep(3000);
}
}catch (IOException e)
{
System.out.println("client is disconneted!");
}
return null;
}
我采用的是struts1.3。
response.flushBuffer();
的目的就是为了,激发异常,跳出循环,不然这个循环等客户的浏览器关闭的时候,还会一直循环下去,这样不好。
所以要加这个。这就是action能满足tomcat中socket不断开的条件的,所以是个标准的长连接。
分享到:
相关推荐
TOMCAT中数据库连接池的几种配置方法
Tomcat6配置连接池很全面的东东
NULL 博文链接:https://bert82503.iteye.com/blog/2152613
此文档主要是tomcat中MySQL连接池配置 - feng - BlogJava
帆软报表FineReport中数据连接中的Tomcat配置JNDI连接,要通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,本文进行详细演示。
Tomcat连接池配置,包你学会tomcat连接池的使用
tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池tomcat 配置连接池
tomcat各版本连接池配置方法【tomcat5.0,tomcat5.5x,tomcat6.0】
详细的tomcat目录下Context.xml的配置文件中配置数据库连接池,
Tomcat中数据库连接池的配置和使用
tomcat、jboss 连接池配置,详细步骤,准确代码,让你实践中学会这两种服务器的连接池配置
https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置
Tomcat连接池的配置说明,教你如何配置tomcat的连接池,内容详细。
tomcat ssl 连接器
tomcat 最大并发数 并发量 tomcat 最大并发连接数 acceptCount不能说只要大于acceptCount的连接就一定被拒绝!
本文讲述tomcat中连接mysql的五种方法!
Tomcat配置Oracle连接池.doc
Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置...
Tomcat配置数据库连接加密访问
Tomcat关于jdbc连接池的配置 包含tomcat6.0与tomcat5.5