networking - WebSockets 不适用于 GCP 中的 HTTP/2 负载均衡器后端
问题描述
我有一个应用程序在 Google Cloud Platform 的负载均衡器后面运行。
当我在后端使用 HTTPS 协议时,我能够与 WebSockets 连接,并且所有 WebSocket 连接都可以正常工作。但是,当我将后端协议更改为 HTTP/2 时,我无法从应用程序连接,它返回的响应为502 Bad Gateway
.
我可以将 WebSockets 与 HTTP/2 一起使用,还是需要执行一些配置才能将 WebSockets 与 HTTP2 后端一起使用?
解决方案
正如其他人评论的那样,HTTP/2 不支持 WebSocket,这就是您收到 5XX 错误的原因。
话虽如此,使用 HTTP/2 ref可以实现(并改进)WebSocket 功能。
如果您有使用 WebSocket 的现有代码,那么重写后端和前端可能不是很好。
但是,如果您正在开发一个新的异步服务,那么看看 HTTP/2 + Server Sent Event (SSE) 方案是个好主意。
推荐阅读
- c# - 根据选择不同的组合框更改组合框中的显示
- python - Python 项目不会根据 sys.path 顺序获取依赖项
- dart - Dart:实例变量在私有类中应该是私有的还是公共的?
- javascript - 删除 HTML 页面中使用的 javascript 文件中未使用的代码?
- mysql - 如何将查询结果保存在变量中并在另一个查询中使用
- javascript - 从html文件打开时,如何让Javascript从html内部运行
- asp.net-mvc - 拒绝访问路径“C:\inetpub\wwwroot\App_Data\TEMP\PluginCache”。亚马逊 AWS 豆茎
- jbpm - 多实例子流程 inputDataItem
- ios - 我们的 iOS 应用程序被删除后我能做什么?
- pdf - JsReport Chrome-pdf 配方横向选项