服务器与Web页面交互方式

传统的 Web 服务都是客户端发出请求,服务端给出响应。

HTTP

  • HTTP短连接:在HTTP1.0中,客户端发送请求,服务器接收请求, 双⽅建⽴连接,服务器响应资源,请求结束。
  • HTTP⻓连接:在HTTP 1.1中,客户端发出请求,服务端接收请 求,双⽅建⽴连接,在服务端没有返回之前保持连接,当客户端再 发送请求时,它会使⽤同⼀个连接。这⼀直继续到客户端或服务器 端认为会话已经结束,其中⼀⽅中断连接。

服务器与Web页面交互方式

服务器向 Web 页面推送消息的方式

  • 非阻塞轮询(短轮询):客户端以固定的频率(比如10秒钟一次)向服务端发送请求,如果服务端没有数据响应,就直接响应一个空,如果有数据响应,就将响应数据作为结果返回给客户端。特点是每次请求后,都会立即给响应。

  • 阻塞长轮询(长轮询):客户端像传统轮询一样从服务器请求数据。如果服务器没有可以立即返回给客户端的数据,则不会立刻返回一个空结果,而是保持这个请求等待数据到来(请求阻塞或者超时),等有响应数据之后将数据作为结果返回给客户端。特点是一次请求后直到有响应数据时才会给返回,否则阻塞等待。

  • 短轮询

    优点是实现逻辑简单,但是当间隔太短时,会有⼤量的请求发送到 服务器,会对服务器负载造成影响;⽽间隔太⻓,业务数据的实时 性得不到保证⽆效请求的数量多。在⽤户量较⼤的情况下,服务器 负载较⾼。

  • ⻓轮询

    优点是消息实时性⾼,⽆消息的情况下不会进⾏频繁的请求;缺点 是服务端维持和客户端的连接会消耗掉⼀部分资源。

WebSocket

  • WebSocket 是 HTML5 ⼀种新的协议(Web TCP)。它建⽴ 在 TCP 之上,实现了客户端和服务端全双⼯异步通信.
  • 它和 HTTP 最⼤不同是:

    WebSocket 是⼀种双向通信协议,WebSocket 服务器和 Browser/ Client Agent 都能主动的向对⽅发送或接收数据;

  • WebSocket 需要类似 TCP 的客户端和服务器端通过握⼿连接,连 接成功后才能相互通信。

WebSocket通信方式

服务端与客户端通信架构

服务端与客户端通信架构

加⼯后的数据经过 KAFKA 推送到 WEBSOCKET 的消费端

加⼯后的数据经过 KAFKA 推送到 WEBSOCKET 的消费端

数据流(从⽣产数据到⽤户端展⽰)

数据流(从⽣产数据到⽤户端展⽰)