WebSocket:一种网络通信协议
Http协议只能从客户端向服务器端发送请求;因此使用轮询,每个一段时间发出一个询问,了解服务器有没有新消息;这样效率低,浪费资源,因此产生WebSocket,可双向通信,弥补了Http协议的缺点。
特点:
- 建立在TCP协议上,服务器端的实现较容易
- 与HTTP协议有良好的兼容性,默认端口是80和443
- 数据轻量,性能开销小,通信高效
- 可发送文本,也可发送二进制数据
- 无同源限制,可与任意服务器通信
- 协议标识符是ws(若加密,为wss),服务器网址就是url
客户端API:
- WebSocket构造函数
var ws=new WebSocket('ws://localhost:8080'); //与服务器连接
2.readyState属性
- CONNECTING:值为0,表示正在连接。
- OPEN:值为1,表示连接成功,可以通信了。
- CLOSING:值为2,表示连接正在关闭。
- CLOSED:值为3,表示连接已经关闭,或打开连接失败。
3.onopen属性
- 指定连接成功后的回调函数
ws.onopen=function(){
ws.send('hhh');
}
4.onclose属性
- 指定连接关闭后的回调函数
5.onmessage
属性
- 用于指定收到服务器数据后的回调函数
6.send()
方法
- 用于向服务器发送数据
7.onerror
属性
- 用于指定报错时的回调函数