您的位置:首页 > 数码常识数码常识

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

2025-05-13人已围观

websocket的实现原理(websocket和轮询)
  在介绍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%的朋友还想知道的:

  ps中色阶的调整原理(ps中的色阶是什么意思)

  原理图设计用什么软件(绘制原理图软件有哪些)

  ps图层混合模式原理通俗讲解(PS图层混合模式变亮)

  websocket工作原理(websocket的原理)



  155644
 

很赞哦! ()

随机图文