【说说你对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 原理 刚面试完,趁热赶紧整理 - 掘金】 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clover‘s Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值