【说说你对webSocket的理解?】

简介: 【说说你对webSocket的理解?】

一、什么是WebSocket

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金

WebSocket是一种基于TCP的全双工通信协议,在应用层。

二、WebSocket协议的原理

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金

与http协议一样,WebSocket协议也需要通过已建立的TCP连接来传输数据。具体实现上是通过http协议建立通道,然后在此基础上用真正的WebSocket协议进行通信,所以WebSocket协议和http协议是有一定的交叉关系的。

首先,WebSocket 是一个持久化的协议,相对于 HTTP 这种非持久的协议来说。简单的举个例子吧,用目前应用比较广泛的 PHP 生命周期来解释。

HTTP 的生命周期通过 Request 来界定,也就是一个 Request 一个 Response ,那么在 HTTP1.0 中,这次 HTTP 请求就结束了。

在 HTTP1.1 中进行了改进,使得有一个 keep-alive,也就是说,在一个 HTTP 连接中,可以发送多个 Request,接收多个 Response。但是请记住 Request = Response, 在 HTTP 中永远是这样,也就是说一个 Request 只能有一个 Response。而且这个 Response 也是被动的,不能主动发起。

三、WebSocket的优缺点

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金

优点:建立WebSocket连接之后,客户端与服务端交流更方便

    客户端只需要向服务端发送一次请求,服务端主动向客户端发送消息

缺点:在服务端的状态不会频繁变化的时候,就不需要使用WebSocket连接了,浪费性能

四、WebSocket应用场景

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金

聊天室

实时地图

五、WebSocket断线重连

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金

客户端每隔一段时间都会向服务端发送一次请求,证明客户端还活着。

六:总结

只需要向客户端发送一次请求,服务端可以主动推送消息到客户端

向客户端发送的第一次请求中包含upgrade、connection,则证明已经可以进行WebSocket请求了

参考文献【一文吃透 WebSocket 原理 刚面试完,趁热赶紧整理 - 掘金


相关文章
|
6月前
websocket 的使用
websocket 的使用
|
2月前
|
Web App开发 移动开发 JavaScript
|
3月前
|
网络协议 API 数据安全/隐私保护
websocket初识
websocket初识
44 2
|
6月前
|
XML JSON 前端开发
WebSocket是什么
【4月更文挑战第27天】WebSocket,即Web浏览器与Web服务器之间全双工通信标准。
|
6月前
websocket
websocket
45 0
|
6月前
|
移动开发 网络协议 Java
WebSocket二
WebSocket二
|
6月前
|
移动开发 网络协议 前端开发
WebSocket一
WebSocket一
|
6月前
|
移动开发 网络协议 安全
Websocket
Websocket
|
监控 前端开发 安全
你使用过websocket吗?
你使用过websocket吗?
74 0
|
资源调度 网络协议 JavaScript
[NsetJs] 使用websocket简单介绍
WebSocket 是一种基于 TCP 的协议,它提供了双向实时通信的能力。相比传统的 HTTP 协议,WebSocket 具有更低的延迟和更高的性能。以下是 WebSocket 的一些特点和优势:
126 0