任何能够缓存 WebSocket 数据的 CDN

Any CDN out there that is able to cache WebSocket data

是否有任何 CDN 提供商能够通过“边缘工作者”或其他机制提供某种 WebSocket 缓存?

我希望我们发出的一些 WebSocket 请求能够尽可能靠近用户提供服务,而无需在多个数据中心设置整个基础设施。

不,无法缓存 WebSocket 消息 - 例如该协议没有任何“可寻址”资源,例如HTTP。 HTTP 在协议中有更多用于缓存的内置设计,例如GET 请求通常是可缓存的,但 POST 请求不是,您可以向请求添加与缓存相关的 headers,例如可以缓存多长时间等等。

出于这个原因,我建议使用 HTTP 而不是 WebSocket,除非您有一个确实必须使用 WebSocket 的用例。使用 HTTP,您可以访问全球可用的所有 CDN 和代理基础设施。

越来越普遍地使用例如Server Sent Events, HTTP/2 streams or possibly GRPC for use cases where WebSockets was used before. The upcoming WebTransport 协议可能会被替换(?)——至少当大多数其他流量是 HTTP/3.

其次,不建议 possible/not 缓存 WebSocket 消息。我鼓励您考虑将您的 WebSocket 消息传递转换为边缘计算的一种形式。

例如: Akamai 提供 EdgeWorkers。 CloudFlare 提供 Workers。 AWS 提供 Lambda。

这可能会为您提供处理工作流的能力,而不是依赖于 WebSockets。

/Mike(是的,我在 Akamai 工作)