comet push学习记录
?
?? Comet push技术最根本的还是socket通信。它将客户端会话注册到一个map中,服务端通过客户端传入的JESSIONID来识别客户端,服务端不断给map中所有JESSIONID下的session注入数据。另一方面一旦有客户端链接,服务端就可以通过JESSIONID不断读session数据,然后发送给客户端。当然这种技术有缺陷,不适合高并发的访问。因为客户端和服务器端建立的是长连接,一旦连接过多服务端很难承受。
?
?这里分服务端和客户端分别说明:
服务端
初始化阶段:
启动tomcat服务时,利用监听启动serversocket接口,并监听客户端请求 。同时还需启动一个session监听接口,当客户端访问时,session监听器通过sessionMap,将客户端发送关来的会话session中JSESSIONID作为sessionMap的key,session作为value.其中JSESSIONID是客户端的唯一标识。Sesssion监听程序大概如下:
?
?
注:在这学习的过程中是参照牛人hexiaodong的代码,其blog地址http://hexiaodong.iteye.com/
<p>?</p><p>?</p>
</div>
<p><br>Comet是长连接啊,只要服务端不关闭连接就行了啊</p> 3 楼 likeblood 2009-10-22 http协议本身就支持长连接 如果你只用浏览器以http方式连接 不用这么麻烦 看看http协议吧 4 楼 only_java 2009-10-22 likeblood 写道http协议本身就支持长连接 如果你只用浏览器以http方式连接 不用这么麻烦 看看http协议吧
我不是用浏览器以http方式连接 ,是Tcp链接