HTTP:使用 HTTP/2 可以在客户端和服务器之间进行双向通信。 对于某些应用程序,您可能不需要全双工通信,像 SSE 这样的东西就足够了。 我们在本文中也发现 WebSockets 和 gRPC 依赖于 HTTP,而 WebRTC 也需要一些其他的信令通道。 在深入研究这些其他协议之前,值得首先探索 HTTP 是否能满足您的实际需求。
WebSockets: 最适合需要双向通信的实时应用程序,例如聊天应用程序, WebSockets 也相对容易设置和使用。 但是,WebSockets 的效率不如 gRPC 或 WebRTC,它们不太适合需要发送大量数据的应用程序。
gRPC: 是一种比 WebSockets 更高效的协议,更适合需要发送大量数据的应用程序。 但是,gRPC 的设置和使用比 WebSockets 更复杂。 如果你需要进行很多小的 API 调用,gRPC 是一个不错的选择。 或者,当你用各种需要通信的编程语言实现微服务时,那么 gRPC 的序列化结构化数据和代码生成会为你节省大量时间。 值得注意的是,您无法在浏览器端轻松使用 gRPC,当然您可以手动引入 grpc-web。WebRTC: 是浏览器和设备之间低延迟实时通信的最有效协议,非常适合需要发送大量数据的应用程序。 WebRTC 还提供了简单易用的 API,可直接在浏览器中使用,从而轻松共享您的相机、音频、屏幕或其他文件。 但是,WebRTC 的设置和使用可能很复杂,因为它需要您执行信号发送,维护 TURN 和 STUN 服务器。
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


