想请教一下websocket是如何保持长连接的
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它使用了浏览器的 JavaScript API 和服务器端的 WebSocket 协议,以实现在单个连接上进行双向通信。
WebSocket 实现了一种叫做握手的机制,来建立和维护长连接。当客户端和服务器端首次连接时,客户端会发送一个 HTTP 请求,其中包含一个额外的 "Upgrade" 头,表示客户端请求将连接升级为 WebSocket 连接。服务器端收到该请求后,如果支持 WebSocket,会发送一个 HTTP 响应,其中包含一个额外的 "Upgrade" 头,表示服务器端同意升级连接。这样,连接就成功升级为 WebSocket 连接。
此后,客户端和服务器端就可以在同一个连接上进行双向通信了。双方可以在任意时刻发送和接收数据,而不需要等待对方的响应。这就是 WebSocket 如何保持长连接的原理
需要注意的是,WebSocket 长连接并不是永久连接,在连接断开后,客户端和服务器端可以重新建立连接。
简单来讲就是http是基于tcp的,tcp本身就是全双工的,websocket只是使用http的upgrade协议升级将http底层的tcp复用了,将协议改为了websocket,从而实现双向通信,增加了心跳来保持链接
7 回答3.2k 阅读✓ 已解决
1 回答480 阅读✓ 已解决
1 回答599 阅读
332 阅读
WebSocket 是什么原理?为什么可以实现持久连接?