webocket
WebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道。
为什么传统的HTTP协议不能做到WebSocket实现的功能?这是因为HTTP协议是一个请求-响应协议,请求必须先由浏览器发给服务器,服务器才能响应这个请求,再把数据发送给浏览器。换句话说,浏览器不主动请求,服务器是没法主动发数据给浏览器的。
为什么WebSocket连接可以实现全双工通信而HTTP连接不行呢?实际上HTTP协议是建立在TCP协议之上的,TCP协议本身就实现了全双工通信,但是HTTP协议的请求-应答机制限制了全双工通信。
webSockert使用
常用事件监听
webSocket.onopen
用于指定连接成功后的回调函数
webSocket.onmessage
用于指定当从服务器接受到信息时的回调函数
webSocket.onclose
用于指定连接关闭后的回调函数
webSocket.onerror
用于指定连接失败后的回调函数
常用方法
webSocket.close()
关闭当前链接
webSocket.send()
向服务器发送数据,当前webSocket暂时只支持发送字符串以及二进制数据。
示例
<!--解决大部分浏览器适配的问题-->
var sc = document.createElement('script')
sc.src = 'https://webrtc.github.io/adapter/adapter-latest.js'
document.head.appendChild(sc)