写点什么

websocket 简析

用户头像
风翱
关注
发布于: 2021 年 04 月 22 日

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。


Http 协议有一个严重的缺陷:通信只能由客户端发起,服务端被动响应。

Websocket 的特点:是一种属于服务器推送技术,服务器可以主动向客户端推送信息,反过来客户端也可以主动向服务器发送信息,是真正的双向平等对话。


Websocket 协议与 Http 协议,有一定的交集,主要体现在 Websocket 借用了 HTTP 的协议来完成一部分握手。


没有使用 Websocket 的情况下,可以达到相同的效果吗?

有两种方式,一种是长轮讯,一种是 AJAX 轮询。

AJAX 轮询

AJAX 轮询就是定时发送请求,也就是普通的客户端与服务端通信过程,只不过是无限循环发送,这样,可以保证服务端一旦有最新消息,就可以被客户端获取。

长轮询

长轮询是客户端和浏览器保持一个长连接,等服务端有消息返回,断开。然后再重新连接,也是个循环的过程,无穷尽也。客户端发起一个长轮讯,服务端如果没有数据要返回的话,会 hold 住请求,等到有数据,就会返回给客户端。客户端又会再次发起一次长轮讯,再重复一次上面的过程。


发布于: 2021 年 04 月 22 日阅读数: 16
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
websocket简析