请选择 进入手机版 | 继续访问电脑版

HTML5星空

HTML5星空 首页 HTML5教程 WebSocket 查看内容

WebSocket 的技术背景

2013-12-20 22:04| 发布者: mydream| 查看: 1668| 评论: 0

摘要: 目前在浏览器中通过HTTP仅能实现单向通信,Comet可以在一定程度上模拟双向通信,但效率较低,并且需要服务器有较好的支持,Flash中的Socket和XMLSocket可以实现真正的双向通信。通过Flex Ajax Bridge,可以在JavaScr ...
目前在浏览器中通过HTTP仅能实现单向通信,Comet可以在一定程度上模拟双向通信,但效率较低,并且需要服务器有较好的支持,Flash中的Socket和XMLSocket可以实现真正的双向通信。

通过Flex Ajax Bridge,可以在JavaScript中使用Flash的这两项功能。可以预见,一旦WebSocket在浏览器中得到实现,它就会替代上面这两项技术,并且得到广泛的使用。
如果我们要建立一个Web聊天室,或者要实现一个Web的实时网络通信的功能,或者要开发一个Web网络远程教育平台,则需要实现向服务器发出信息、接受服务器返回或者广播出来的信息、持续连接、高速、双工双向等。但是HTTP协议的特征注定了实现这一要求是非常不稳定和不安全的,同时,HTTP在处理持续连接、频繁连接的情况下效率不高,不能完成高负载、强通信条件下的任务。

下面是人们总结的HTTP在通信应用上的问题。
 每一位客户到服务器消息都有一个HTTP首部,无论上一次连接是否已经确认。
 客户端很难保证从服务器端返回的连接一定能够被维持住。实际上非常麻烦,而且消耗的资源很大。作者做过试验,如果基于XHR①模式长时间(这里指超过12小时)密集通信,会让浏览器内存消耗变大,机器反应越来越慢,直至崩溃。
 服务器端必须为每一个连接的HTTP请求消耗足够的资源,并向客户端发出消息进行响应。(一台机器能发出的TCP层连接是有限的。)
 附加延伸问题。这种通信方式在前期解决了很多问题,但是随着时代的进步,我们发现,这种通信模式给全世界的互联网带来了巨大的噪声,增加了很多不必要的通信消耗,浪费了带宽资源。用时髦的话说就是:既不节能,又不环保。

基于HTTP的每个任务都需要向远程服务器发出一个请求,服务器每次都要对这些请求进行判断和响应。一直以来,Web服务器很累、很忙,因此,人们开始提出一种新的解决方案来应对前面提到的各种问题,这个新方案就是WebSocket协议。WebSocket是一个足够简单的解决方案,它可以实现基于TCP连接的双向通信。
W3C对WebSocket技术远景的规则可以用于各种网络应用,如游戏、股票行情、多用户应用程序、实时编辑、聊天室、远程教育、远程桌面和远程控制等。同时,在不远的将来,它将创造出以前在Web端从未出现过的各种网络应用。




鲜花

握手

雷人

路过

鸡蛋

相关阅读

更多资源及Java+大数据个人原创视频,
可关注本站官方公众号观看:
快讯

     京ICP备14042305号-1

html5star team © 2012-2013 html5星空 Comsenz Inc.

GMT+8, 2021-9-26 20:39 , Processed in 0.086063 second(s), 29 queries .

返回顶部