WebSocket是H5提供的一种在单个TCP连接上进行全双工通讯的协议。
WebSocket使客户端和服务器之间的数据交换更加简单,允许服务端主动向客服端推送数据,可以是文本也可以是二进制数据,而且没有同源策略的限制,不存在跨域问题。浏览器和服务器完成一次握手就可创建持久性的连接,并进行双向数据传输。协议的标识符是ws,像https加密后为wxs。
如今很多网站为实现推送技术,使用的技术为Ajax轮询。轮询实在特定的时间间隔,由浏览器对服务器发送HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种模式很明显的缺点是:浏览器要不断向服务器发请求,而HTTP请求可能包含较长的头部,其中真正有效的数据可能只有一小部分,会浪费很多带宽等资源。Websocket协议则能更好的节约服务器资源和带宽,并且能够实时的进行通讯。
WebSocket对象的创建
let ws = new WebSocket(url,[protocol]);
第一个参数url,指定连接的URL。第二个参数protocol是可选的,指定了可接受的子协议。
简单示例
客户端代码:
let ws = new WebSocket("ws://localhost:8081");
ws.onopen = function(