在开始使用Web socket之前,有必要了解一下用于服务器与客户端之间的通信技术。它们如下:
- Polling
- Long Polling
- Streaming
- 回调 和 AJAX
- HTML5
Polling
Polling可以定义为一种方法,无论传输中是否存在数据,该方法都将执行定期请求。定期请求以同步方式发送。客户端在指定的时间间隔内向服务器发出定期请求。服务器的响应中包含可用数据或某些警告消息。
Long Polling
顾名思义,Long Polling包含类似Polling的技术。客户端和服务器将连接保持活动状态,直到获取某些数据或发生超时为止。如果由于某些原因连接中断,客户端可以重新启动并执行顺序请求。
Long Polling无非是在轮询过程中提高了性能,但是持续不断的请求可能会减慢该过程。
Streaming
它被认为是实时数据传输的最佳选择。服务器保持与客户端的连接处于打开状态并处于活动状态,直到(除非)获取了所需的数据为止。在这种情况下,可以说连接是无限打开的。流包括HTTP标头,这会增加文件大小,增加延迟。这可以被视为主要缺点。
AJAX
AJAX基于Javascript的XmlHttpRequest对象。它是异步Javascript和XML的缩写形式。XmlHttpRequest对象允许执行Javascript,而无需重新加载整个网页。AJAX仅发送和接收网页的一部分。
XmlHttpRequest对象的AJAX调用的代码段如下:
var xhttp; if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
与Web socket相比,AJAX的主要缺点是-
- 它们发送HTTP标头,从而使总大小更大。
- Web服务器消耗更多资源。
HTML5
HTML5是用于开发和设计Web应用程序的强大框架。主要支柱包括Mark-up,CSS3和Javascript API。
下图显示了HTML5组件。
下面给出的代码段描述了HTML5的声明及其doctype。
<!DOCTYPE html>
为什么我们需要Web socket?
互联网被认为是超文本标记语言(HTML)页面的集合,这些页面相互链接以形成概念性的信息网络。随着时间的流逝,静态资源的数量和内容越来越丰富,例如图像,并开始成为网络结构的一部分。
服务器技术先进,允许动态服务器页面-基于查询生成内容的页面。
很快,对具有更多动态网页的需求导致了动态超文本标记语言(DHTML)的可用性。感谢JavaScript。在接下来的几年中,我们看到了跨帧通信,试图避免页面重新加载,然后避免帧内进行HTTP Polling。
但是,这些解决方案都没有为服务器和客户端之间的实时双向通信提供真正标准化的跨浏览器解决方案。
这引起了Web socket协议的需求。它引起了双向通信,从而为所有Web浏览器带来了桌面丰富的功能。
作者:terry,如若转载,请注明出处:https://www.web176.com/websockets/689.html