一、什么是webSocket?
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许在客户端(如Web浏览器)和服务器之间建立持久的连接,实现全双工通信。
二、WebSocket出现的背景
1、http协议背景:
以B/S架构为例:Http请求如下:
所有的请求都是从浏览器发送,服务器进行响应。所有请求只能从浏览器发送至服务器,方向固定,不能从服务器发送至浏览器。
(注意:如果后端有多个服务器,服务器之间的http请求是可以互相发送的)。
2、以实际开发测试某个购物网站的扫码支付功能为例,通过http协议实现。
支付流程如下:
(1)购买某个商品,购物网站上展示支付二维码。
(2)个人用户进行扫一扫请求微信服务器进行请求,支付成功。
(3)微信服务器会通知到购物网站服务器,购物网站也可以主动请求询问
(4)购物网站前台页面 通过 不断进行http接口请求(比如:0.5秒发起一次,1秒发起一次)后端服务器,询问支付结果。
(因为服务端不能主动发起请求向客户端,所以只能客户端不断发起请求询问结果,就是轮询,轮询缺陷:浪费带宽,实时性差,服务器压力大)
因为http协议的缺陷,2008年,HTML5规范中将WebSocket引入,作为一种新的协议来解决实时通信的需求。后来应用越来越广泛。它被广泛用于实时聊天、在线游戏、实时数据监控等领域,为开发者提供了方便、高效的实时通信解决方案。
三、初识WebSocket协议
以下截图是从谷歌浏览器,通过开发者工具查看的webSocket协议的相关信息