我正在开发一个股票应用程序,并且必须通过定价更改来保持用户浏览器的更新
我不需要访问过去的数据,浏览器只要在发生变化时就必须获取当前数据
是否可以过滤一个dynamodb流并公开一个可以与javascript EventSource一起使用的端点(在api网关后面)?
答案 0 :(得分:4)
API Gateway是一种存储转发服务。它收集来自后端可能发生的任何响应(Lambda,HTTP服务器等),然后将 en block 返回给浏览器 - 它不会流式传输响应,因此它不适合用作Eventsource。
AWS目前没有明显适合此用例的托管服务产品......您在EC2上需要一台服务器(或多台服务器),消耗数据流并将其转发回到连接的浏览器。
假设运行EC2服务器是可接受的选项,那么您需要HTTPS和负载平衡。应用程序Load Balancer支持Web套接字,因此可能也支持事件源。 TCP(非HTTP)模式下的经典ELB应该没有问题地支持事件源,但是当浏览器连接丢失时它可能无法正确地向后端发送信号。这两个平衡器也可以为您卸载HTTPS。网络负载均衡器肯定会用于平衡事件源,但是您的实例需要提供HTTPS,因为NLB不会为您卸载它。
实际上,AWS IoT实际上有一个非常规的替代方案,它具有内置的websocket支持......当然,与事件源不同,但是在这样的环境中,我认为每个浏览器用户都是流连接可能是一个可以解决的事情。"答案 1 :(得分:1)
我意识到这不是使用服务器发送事件,而是AWS刚刚宣布了用于API网关的无服务器WebSockets。定价基于连接的分钟数和发送的消息数。
文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html