el_*_*gro 5 websocket http2 grpc firebase-realtime-database google-cloud-firestore
一些StackOverflow 帖子和这篇内容丰富的博客文章(但可能已经过时)表明,当前在浏览器中实现的 HTTP/2 尚不支持推送流,并且在需要此功能时仍应使用 WebSockets 或 SSE。
我很好奇 Google Firestore(它通过 HTTP 实现 gRPC)是如何实现这一目标的。据我所知,在打开使用 Firestore 的网站后,没有使用以下内容:
问题
Firestore 似乎根本没有在浏览器中使用 gRPC。相反,当在浏览器中运行时,它们使用 WebChannel。这是一个支持传统 HTTP 请求和流的抽象。当浏览器本身不支持流传输时,WebChannel似乎会使用轮询。
我不知道为什么 Firestore 朝这个方向发展,但这并不是浏览器中 gRPC 或浏览器中 HTTP/2 的根本限制。(大多数)浏览器实现者遗漏的 HTTP/2 主要功能是预告片。grpc -web 项目是 gRPC 协议子集的实现,旨在在浏览器中运行并解决缺乏预告片支持的问题。该子集包括服务器端流式传输,并且应该非常适合 Firestore 用例。
| 归档时间: |
|
| 查看次数: |
1505 次 |
| 最近记录: |