美文网首页
WebSocket(一)

WebSocket(一)

作者: _1633_ | 来源:发表于2020-12-20 23:37 被阅读0次

        WebSocket 是一种基于 TCP 的轻量级网络通信协议,在地位上是与HTTP“平级”的。

        其实 WebSocket 与 HTTP/2 一样,都是为了解决 HTTP 某方面的缺陷而诞生的。HTTP/2针对的是“队头阻塞”,而 WebSocket 针对的是“请求 - 应答”通信模式。

    请求 - 应答 有什么不好的地方呢?

        “请求 - 应答”是一种“半双工”的通信模式,虽然可以双向收发数据,但同一时刻只能一个方向上有动作,传输效率低。更关键的一点,它是一种“被动”通信模式,服务器只能“被动”响应客户端的请求,无法主动向客户端发送数据。就导致 HTTP 难以应用在动态页面、即时消息、网络游戏等要求“实时通信”的领域。

        在 WebSocket 出现之前,在浏览器环境里用 JavaScript 开发实时 Web 应用很麻烦。因为浏览器是一个“受限的沙盒”,不能用 TCP,只有 HTTP 协议可用,所以就出现了很多“变通”的技术,“轮询”(polling)就是比较常用的的一种。

        简单地说,轮询就是不停地向服务器发送 HTTP 请求,问有没有数据,有数据的话服务器就用响应报文回应。如果轮询的频率比较高,那么就可以近似地实现“实时通信”的效果。

        但轮询的缺点也很明显,反复发送无效查询请求耗费了大量的带宽和 CPU 资源,非常不经济。

        所以 WebSocket 应运而生。

    相关文章

      网友评论

          本文标题:WebSocket(一)

          本文链接:https://www.haomeiwen.com/subject/nmzzektx.html