java 怎么实现http1.1中规定的pipeline的长连接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么实现http1.1中规定的pipeline的长连接相关的知识,希望对你有一定的参考价值。
参考技术A 目前web上的消息通讯方式主要有以下几种。轮询,长连接,websocket
轮询:隔一段时间访问服务器,服务器不管有没有新消息都立刻返回。
长连接:页面向服务器发出请求,由服务器决定什么时候返回。(如果有新消息则立刻返回,没有的话就保持连接,直到有新消息才返回)
websocket:类似Java Socket,由Http请求模拟实现的socket。
要实现长连接的关键就是: 由服务器端决定什么时候返回数据。比如在servlet中。
doGet(...)
...
Thread.sleep(30000);
return ...
这就是一个长连接的例子,只是没有任何意义而已。
你要做的就是在doGet中阻塞住,
while(!hasNewMsg)
sleep(500)
return newMsg...
当然你的ajax超时时间要设置长一点。
如果可以的话,最好可以使用websocket。本回答被提问者和网友采纳
以上是关于java 怎么实现http1.1中规定的pipeline的长连接的主要内容,如果未能解决你的问题,请参考以下文章
RFC2616-HTTP1.1-Methods(方法规定部分—译文)