10 分钟 理论 + 实操 搞懂 WebSocket

WebSocket之前的解决方法:用的轮询长轮询,缺点会产生大量的请求和响应,造成不必要的网络开销和延迟
webSocket应用场景:低延迟实时连接的应用
webSocket优点:双向实时通信,降低延迟,可以减少请求和响应的开销,因为它的连接只需要建立一次
它允许服务器和客户端之间通过单个TCP连接进行双工通信并且进行实时的数据交换
建立连接过程:HTTP发送一次常规get请求在请求头中带上Upgrade告诉服务器要从HTTP升级成websocket连接建立成功,客户端和服务端可以随时进行数据交互。
webSocket心跳机制:
为什么使用心跳机制:为了保持WebSoket稳定的长连接,在建立连接之后,服务端和客户端之间通过心跳包来保持连接状态,以防止连接因为长时间没有数据传输而被切断
什么是心跳包:心跳包是一种特殊的数据包,它不包含任何实际数据,只是用来维持连接状态的
怎么使用:通常情况下心跳包由客户端和服务端定期发送一个空的数据帧,以确保双方的链接仍然有效,避免链接因为长时间没有数据传输而被中断,如果长时间没有收到对方的心跳包就可以认为连接已经断开需要重新建立连接。
webSoket限制:不提供加密功能,不安全,可以用SSL协议对来webSoket进行加密,确保数据安全,也可以在服务端限制权限设置白名单或者黑名单只允许特定地址或者域名的客户端进行链接。
浏览器的限制:不支持IE10以前的版本
消耗服务器资源