欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

websocket的实现原理(websocket和轮询)

数码知识

丁心蔚优秀作者

原创内容 来源:小居数码网 时间:2024-08-14 18:12:01 阅读() 收藏:23 分享:52

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有702个文字,大小约为3KB,预计阅读时间2分钟。

在介绍WEBSOCKET之前,

websocket和轮询

小编顺带介绍下ajax轮询长轮询的原理。

ajax轮询

ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。

场景再现:

客户端:啦啦啦,有没有新信息(请求)

服务端:没有(响应)

客户端:啦啦啦,有没有新信息(请求)

服务端:没有。。(响应)

客户端:啦啦啦,有没有新信息(请求)

服务端:你好烦啊,没有啊。。(响应)

客户端:啦啦啦,有没有新消息(请求)

服务端:好啦好啦,有啦给你。(响应)

客户端:啦啦啦,有没有新消息(请求)

服务端:。。。。。没。。。。没。。。没有(响应) ---- 循环操作

长轮询

长轮询其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回响应给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。

场景再现:

客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(请求)

服务端:额。。 等待到有消息的时候。。来给你(响应)

客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(请求) -循环操作

从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起。简单地说就是,服务器是一个很懒的冰箱(这是个梗)(不会、不能主动发起连接),但是上司有命令,如果有客户来,不管多么累都要好好接待。

说完这个,我们再来说一说上面的缺陷(原谅我废话这么多吧QAQ)从上面很容易看出来,不管怎么样,上面这两种都是非常消耗资源的。ajax轮询 需要服务器有很快的处理速度和资源。(速度)long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小)所以ajax轮询 和long poll 都有可能发生这种情况。

客户端:啦啦啦啦,有新信息么?

服务端:月线正忙,请稍后再试(503 Server Unavailable)

客户端:。。。。好吧,啦啦啦,有新信息么?

服务端:月线正忙,请稍后再试(503 Server Unavailable)

客户端:

然后服务端在一旁忙的要死:冰箱,我要更多的冰箱!更多。。更多。。(我错了。。这又是梗。。)

所以在这种情况下出现了,Websocket出现了。他解决了HTTP的这几个难题。

上面就是小居数码小编今天给大家介绍的关于(websocket和轮询)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(358)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:websocket的实现原理(websocket和轮询):http://sjzlt.cn/shuma/155644.html

猜你喜欢