websocket通信
应用场景:服务器推送消息
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
WebSocket可以实现广播和私聊。
前端在OnMessage事件监听中接收到来自后端的消息,然后进行处理(展示在页面上);
长轮询、定时轮询
第一次握手带有特殊的header connection:upgrade
tcp:全双工
101 协议切换 http:半双工->websockt:全双工
经历了三次TCP握手之后,利用 HTTP 协议升级为 WebSocket 协议。正因为各个浏览器都支持 HTTP协 议,所以 WebSocket 会先利用HTTP协议加上一些特殊的 header 头进行握手升级操作,升级成功后就跟 HTTP 没有任何关系了,之后就用WebSocket 的数据格式进行收发数据。