rest推送实现--jesey SSE

rest推送实现–jesey SSE

  服务器推送技术,是一种当服务器端的业务数据,资源状态发生改变的时候,服务器可以主动将这个信息通知给浏览器的通信技术。这里我们不讨论TCP/IP协议建立的连接,基于这种的Socket,一但连接建立,在这样的双向通信链路中随时都可以发送通知。如果我们自己在项目中实现一般还是使用第三方的,比如极光推送这个也是采用建立TCP长连接实现的。我们这里就主要介绍HTTP协议下面的推送。

有哪些推送技术?

1.Polling技术

  这里就只简单的说一下polling(轮询),是客户端周期性地访问服务器来获得数据。

  优点:客户端轮询技术易于实现。不需要为此在服务器或者浏览器端额外使用第三方库。

  缺点:客户端轮询每次请求都需要建立新的Http连接并在结束时关闭,就算是没有更新数据也会建立大量的Http连接来查询是否更新。

2.Comet

  反向AJAX的技术集,包括长轮询和流两种技术实现。反向AJAX利用HTTP1.1中的keepAlive持久性连接技术,在客户端发出请求后,通过KeepAlive保存服务器向浏览器做出响应的通信。

  优点:解决了轮询的消耗服务器网络带宽的问题,变成了推。

  缺点:Comet需要服务器额外的技术支持,需要服务器和客户端同时引入第三方工具包,实现相对复杂。

3.HTML5技术集中的SSE和WebSocket(TCP双通道)

  http://blog.csdn.net/li563868273/article/details/50251267

在我的这篇帖子中有详细的SSE介绍。我这里主要讲如何实现。

如何实现推送?

  jersey的SSE MAVEN依赖包如下:


  org.glassfish.jersey.media
  jersey-media-sse
  ${jersey.version}

Jersey的SSE有两种通信模式

你可能感兴趣的:(jersey-rest,java虚拟机之路,rest,socket,sse,jersey)