• 短轮询、长轮询、SSE 和 WebSocket


    短轮询

    短轮询的基本思路就是浏览器每隔一段时间向浏览器发送 http 请求,服务器端在收到请求后, 不论是否有数据更新,都直接进行 响应。这种方式实现的即时通信,本质上还是浏览器发送请求,服务器接受请求的一个过程,通 过让客户端不断的进行请求,使得客 户端能够模拟实时地收到服务器端的数据的变化。

    优点

    这种方式的优点是比较简单,易于理解。

    缺点

    这种方式由于需要不断的建立 ht tp 连接,严重浪费了服务器端和客户端的资源。当用户增加时,服务器端的压力就会变大,这 是很不合理的。

    长轮询

    长轮询的基本思路是,首先由客户端向服务器发起请求,当服务器收到客户端发来的请求后,服 务器端不会直接进行响应,而是先将 这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数 据,则到达一定的时间限制才返回。 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立 连接。
    长轮询和短轮询比起来,

    优点

    它的 优点是明显减少了很多不必要的 http 请求次数,相比之下节约了资源。

    缺点

    长轮询的缺点在于, 连接挂起也会导致资源的浪费。

    SSE

    SSE 的基本思想是,服务器使用流信息向服务器推送信息。严格地说,http 协议无法做到服务 器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息。也就是说,发送的不是一次性的数 据包,而是一个数据流,会连续不断 地发送过来。这时,客户端不会关闭连接,会一直等着服务器发过来的新的数据流,视频播放就 是这样的例子。SSE 就是利用这种机 制,使用流信息向浏览器推送信息。它基于 http 协议,目前除了 IE/Edge,其他浏览器都支 持。

    优点

    它相对于前面两种方式来说,不 需要建立过多的 http 请求,相比之下节约了资源。

    上面三种方式本质上都是基于 http 协议的,我们还可以使用 WebSocket 协议来实现。

    WebSocket

    WebSocket 是 Html5 定义的一个新协 议,与传统的 http 协议不同,该协议允许由服务器主动的向客户端推送信息。使用 WebSocket 协议的缺点是在服务器端的配置 比较复杂。WebSocket 是一个全双工的协议,也就是通信双方是平等的,可以相互发送消息, 而 SSE 的方式是单向通信的,只能 由服务器端向客户端推送信息,如果客户端需要发送信息就是属于下一个 http 请求了。

  • 相关阅读:
    DDD 领域驱动设计
    IOC 控制反转
    WCF
    Lucene 全文检索引擎
    Redis
    Cache 缓存
    return
    PHP中empty();和isset();的区别.
    sql 简单用语
    关系型数据库
  • 原文地址:https://www.cnblogs.com/superlizhao/p/13992807.html
Copyright © 2020-2023  润新知