首先WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
在传输中有两个方法,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询,
轮询是在每几秒内循环,由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端和浏览器,缺点就是消耗资源。
浏览器通过JS向服务器发出建立WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。
(TCP是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构)
当获取连接后,可以通过send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。
以下是WebSocket 对象的事件,可供参考
事件事件处理程序描述
openSocket.onopen连接建立时触发
messageSocket.onmessage客户端接收服务端数据时触发
errorSocket.onerror通信发生错误时触发
closeSocket.onclose连接关闭时触发
下图是WebSocket 对象的方法
方法描述
Socket.send()使用连接发送数据
Socket.close()关闭连接
什么是长连接、短连接?
短链接
连接->传输数据->关闭连接
HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
长链接
连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接
长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。