HTML5 WebSocket
1. 定义:
HTML5提供的一种在TCP连接上进行全双工通信的协议。
TCP连接是一对一的,数据传输的过程需要经历三次握手四次挥手,效率较低。
2. 原理:
在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
3. 当下推送技术的局限性及WebSocket的优势:
现在为了实现推送所用的技术为Ajax轮询,即在特定的时间间隔内由浏览器向服务器发出HTTP请求,由服务器端返回最新的数据给客户端的浏览器,而HTTP请求可能包含较长的头部,有效数据可能极小。WebSocket协议可以更好的节省服务器资源和带宽,并且能够更实时的进行通讯。
4. 使用WebSocket
1)创建对象:var Socket = new WebSocket(url, [protocol];
2)发出建立WebSocket的请求,连接建立,可以通过TCP连接直接交换数据,此时会触发open事件(Socket.onopen);
3)获取WebSocket连接后,用Socket.send()方法向服务器发送数据,并通过onmeessage事件来接收服务器返回的数据,此时触发message事件(Socket.onmessage);
4)连接关闭,Socket.close()方法;
5. WebSocket与HTTP的关系
1)相同:都是基于TCP的,都是可靠性传输协议;都是应用层协议;
2)不同:一个是双向通信协议,一个是单向;WebSocket需要握手建立连接;
6. websocket和socket的区别是什么
Socket是TCP/IP网络的API,是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口,是传输控制层协议;而WebSocket则是一个典型的应用层协议。
当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。