有没有办法在Cloudfront上使用sse(服务器发送事件)?
我知道几年前他们宣布支持websockets,但我找不到任何与通过Cloudfront使用sse通信相关的参考或案例。
我进行了测试,客户端响应大约一分钟后就以504网关超时结束。
有没有办法在Cloudfront上使用sse(服务器发送事件)?
我知道几年前他们宣布支持websockets,但我找不到任何与通过Cloudfront使用sse通信相关的参考或案例。
我进行了测试,客户端响应大约一分钟后就以504网关超时结束。
是的,您可以在CloudFront上使用SSE(服务器发送事件)。
有许多不同的方法可以在CloudFront后面实现您的API。因此,在某些情况下可能会存在限制。但是,让我描述一种标准且直接的方式,您可以设置应用程序并已经测试可与SSE一起使用。
假设您有一个EC2实例(至少一个)位于ALB(应用程序负载均衡器)后面。即使您不需要多个EC2实例,您可能需要一个ALB以使用HTTPS。即使您需要将TLS / SSL证书导入到CloudFront{{link1:Distribution}}中,您还需要通过HTTPS(不要忘记它可能位于另一个大陆)使您的API可访问(由CloudFront本身)。
在CloudFront中,您可以创建一个分发,其中Origin基本上将https://yourapp.com/api
映射到该ALB。请注意,CloudFront还允许您将流量转发到不同的(子)域,如果那是您的API / ALB所在的位置(我也成功测试了该设置)。Websockets 可以与 AWS API Gateway 一起使用。您也可以使用 AppSync(GraphQL)订阅。CloudFront 本身无法发送任何内容。