Fe-interview: [软技能] 第12天 网页应用从服务器主动推送到客户端有那些方式?

Created on 27 Apr 2019  ·  17Comments  ·  Source: haizlin/fe-interview

第12天 网页应用从服务器主动推送到客户端有那些方式?

软技能

Most helpful comment

  • websocket
  • SSE,EventSource接口

参考

All 17 comments

websocket

补充:SSE,EventSource接口

http2.0 的长链接

websocket

  • 一个轮训
  • 一个轮训

轮询也要请求吧,不是主动吧

  • 一个轮训

轮询也要请求吧,不是主动吧

轮询是定时去服务器端请求数据,不管有没有新数据都会请求。并不算主动推送

  • 一个轮训

轮询也要请求吧,不是主动吧

轮询是定时去服务器端请求数据,不管有没有新数据都会请求。并不算主动推送

是的,没错

第一时间想到了实现实时推送消息的websocket

websocket

补充:SSE,EventSource接口

SSE 技术详解:https://www.cnblogs.com/goloving/p/9196066.html

  • websocket
  • SSE,EventSource接口

参考

服务端推送

webSocket

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

eventsource(SSE)

EventSource 接口是 Web 内容与服务器发送的事件的接口。一个 EventSource 实例打开一个持久连接 HTTP 服务器,它发送事件的 text/event-stream 格式。连接保持打开状态,直到通过调用关闭 EventSource.close()。

与 WebSockets 不同,服务器发送的事件是单向的。也就是说,数据消息是从服务器到客户端(例如用户的 Web 浏览器)沿一个方向传递的

Web Push

就是用户订阅了一个站点的 Web Push 服务后,即使用户关闭了浏览器,一旦站点主动发送推送消息,用户都能收到,只要你的电脑是开着的。这是目前谷歌和苹果在 Chrome 和 Safari 上都力推的一种全新推送服务,Firefox 最近也加入了这个阵营。

但是由于需要 GCM 支持,所以这个方法并不常见

关于轮询,轮询是客户端主动去向服务端‘索要’信息,因此算不上主动推送

  1. websocket
  2. SSE
    websocket更强大一些吧,支持全双工,协议较新(也不新了都2020了)
  • websocket
  • EventSource

websocket

webSocket
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

eventsource(SSE)
EventSource 接口是 Web 内容与服务器发送的事件的接口。一个 EventSource 实例打开一个持久连接 HTTP 服务器,它发送事件的 text/event-stream 格式。连接保持打开状态,直到通过调用关闭 EventSource.close()。

与 WebSockets 不同,服务器发送的事件是单向的。也就是说,数据消息是从服务器到客户端(例如用户的 Web 浏览器)沿一个方向传递的

Web Push
就是用户订阅了一个站点的 Web Push 服务后,即使用户关闭了浏览器,一旦站点主动发送推送消息,用户都能收到,只要你的电脑是开着的。这是目前谷歌和苹果在 Chrome 和 Safari 上都力推的一种全新推送服务,Firefox 最近也加入了这个阵营。

但是由于需要 GCM 支持,所以这个方法并不常见

关于轮询,轮询是客户端主动去向服务端‘索要’信息,因此算不上主动推送

Was this page helpful?
0 / 5 - 0 ratings