一.websocket协议的概念
websocket是html5新增的全双工通讯协议,基于Tcp协议,属于应用层协议
浏览器和服务器只需要一次握手就可以创建持久性的连接,并进行双向数据传输,也是解决了半双工通讯协议的弊端。简单来说就是客户端可以向服务器主动推送信息,服务器也可以主动向客户端主动推送协议。
二.websocket协议的原理
websocket的原理:客户端向 WebSocket 服务器通知一个带有所有接收者ID的事件,服务器接收后立即通知所有活跃的客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。
三.websocket协议的特点
1.支持双向通信,实时性更强
2.可以发送文本,也可以发送二进制数据
3.建立在Tcp协议之上,服务端的实现比较容易
4.数据格式比较轻量,性能消耗小,通讯高效
5.没有同源策略限制,客户端可以和任何服务端通信
6.协议标识符是ws,如果加密为wss。服务器的网址就是URL
7.与http协议有良好的兼容性,默认端口也是80和443,并且握手阶段还是用的http协议,因此握手时不会被屏蔽,能通过各种http代理服务器。
四.websocket的生命周期
1.Onopen(打开事件):在客户端与服务端建立连接后触发
2.onmessage(消息事件): 在服务端给客户端发来消息的时候触发
3.Onclose(关闭事件):在客户端与服务端建立关闭后触发
4.Onerror(错误事件):此事件在 WebSocket 连接或者端点发生错误时产生。
五.websocket的使用场景
弹幕
媒体聊天
协同编辑
基于位置的应用
体育实况更新
股票基金报价实时更新
六.与http最大的区别
wobsocket双向传输数据
http是单向的