Websocket:前端的实时性

http的请求过程:

客户端主动发起请求到服务端,服务端根据请求发起相应的处理后给客户端一个响应。

前提: 客户端必须先发起请求,服务端才能发起响应。非常依赖客户端的主动性。

客户端不主动的发起请求的话,服务端是不能主动推送响应的。


Socket:

Socket通常意义上是指的TCP的socket。也是客户端和服务端,只不过客户端和服务端上来2方就建立一个长连接通道,在这个长连接通道上客户端可以主动向服务端发送消息。服务端也可以向客户端发起响应,也可以不响应。之间比较随意。

好处:服务端可以主动推送消息,客户端也能主动发送消息。


Websocket:

有些情况下需要使用socket方式,所以html5之后websocket出现了。

这样发送一条消息并原路返回。左边的是客户端的websocket,右边的是服务端的websocket

然后查看Network,发现状态码是101:

这是websocket连接成功的状态码.

websocket发送一条消息:

上图所示是因为客户端发送了一条yinlei的消息,然后服务端给我们返回回来了。

客户端如何监听服务端返回回来的消息呢?

通过如下事件监听:

这样就监听了消息事件。

现在发送一条消息做测试:

以上示例

可以看到也是通过一个上传下载,好像也是通过一个请求,似乎和http的方式无区别。

那么服务端主动推送的形式怎么来?

先修改服务端:

现在服务端触发按钮发送(右边的是服务端)

可以看到返回了一条当前时间戳,因为触发的按钮是timestamp。

多点击几次,再看看客户端:

这就是服务端主动推送给客户端的方式。


拓展:Go实现消息推送

下篇文章将继续介绍SpringBoot整合Websocket.

发布了268 篇原创文章 · 获赞 36 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_39969226/article/details/103713335
今日推荐