博客> WebSocket集成XMPP网页即时通讯1:Java Web Project服务端/客户端Jetty9开发初探
WebSocket集成XMPP网页即时通讯1:Java Web Project服务端/客户端Jetty9开发初探
2017-11-23 15:19 评论:0 阅读:448 semot926
商城即时通讯 移动即时通开发 仿阿里旺旺开发 电商即时通讯 企业即时通讯开发

[WebSocket集成XMPP网页即时通讯]Web应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏、在线证券、设备监控、新闻在线播报、RSS订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可能已经过时了。所以保持客户端和服务器端的信息同步是实时Web应用的关键要素,对Web开发人员来说也是一个难题。在WebSocket规范出来之前,开发人员想实现这些实时的Web应用,不得不采用一些折衷的方案,其中最常用的就是轮询(Polling)和Comet技术(AJAX)。

但AJAX有显著缺点:

1、浏览器需要不断的向服务器发出请求,然而HTTPrequest的header是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽。

2、客户端和服务器端的编程实现都比较复杂,在实际的应用中,为了模拟比较真实的实时效果,开发人员往往需要构造两个HTTP连接来模拟客户端和服务器之间的双向通讯,一个连接用来处理客户端到服务器端的数据传输,一个连接用来处理服务器端到客户端的数据传输。

WebSocketAPI是下一代客户端-服务器的异步通信方法。该通信取代了单个的TCP套接字,使用ws或wss(ssl加密)协议,可用于任意的客户端和服务器程序。WebSocket目前由W3C进行标准化。WebSocket已经受到Firefox4、Chrome4、Opera10.70、Edge以及Safari5等浏览器的支持。WebSocketAPI最伟大之处在于服务器和客户端可以在给定的时间范围内(IdleTime)的任意时刻,相互推送信息。WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息;XHR受到域的限制,而WebSocket允许跨域通信。

为方便开发,用了Jetty服务器,在网上很多例子都是基于jetty7.0的。但jetty9.0以后WebSocket的基类代码变化很多,于是自己动手开发,参考jetty官网:

http://www.eclipse.org/jetty/documentation/current/websocket-jetty.html#jetty-websocket-api首先在Eclipse新建一个Dynamicwebproject

请自行下载安装jetty,另外需要在Eclipse安装Jetty工具,便于调试。

web.xml

收藏
0
sina weixin mail 回到顶部