websocket技术

在浏览器中经过http仅能实现单向的通讯,comet能够必定程度上模拟双向通讯,但效率较低,并须要服务器有较好的支持; flash中的socket和xmlsocket能够实现真正的双向通讯,经过 flex ajax bridge,能够在javascript中使用这两项功能. 能够预见,若是websocket一旦在浏览器中获得实现,将会替代上面两项技术,获得普遍的使用.面对这种情况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通信。
在JavaEE7中也实现了WebSocket协议。
WebSocket protocol 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通讯(full-duplex)。
现不少网站为了实现即时通信(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,而后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器须要不断的向服务器发出请求(request),然而HTTP request 的header是很是长的,里面包含的数据可能只是一个很小的值,这样会占用不少的带宽。
而最比较新的技术去作轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通讯,但依然须要发出请求(reuqest)。
在 WebSocket API,浏览器和服务器只须要要作一个握手的动做,而后,浏览器和服务器之间就造成了一条快速通道。二者之间就直接能够数据互相传送。在此WebSocket 协议中,为咱们实现即时服务带来了两大好处:
1. Header
互相沟通的Header是很小的-大概只有 2 Bytes
2. Server Push
服务器能够主动传送数据给客户端
 
点评:
目前基于网页的voip呼叫功能,都是基于flash的socket建立语音通道,进行实时通讯;
html5则是直接使用websocket协议实现;
相关文章
相关标签/搜索