AWS中哪个服务适合将实时更新发送到浏览器?

14

我正在开发一款股票应用,需要对用户的浏览器进行价格更新。

我不需要访问过去的数据,只需在价格变动时让浏览器获取当前数据。

是否可能过滤 DynamoDB 流并公开一个端点(在 API 网关后面),可与 JavaScript EventSource 一起使用?

2个回答

14

8

API Gateway是一个存储和转发服务。它从后端收集响应(Lambda、HTTP服务器等),然后将其作为整体返回给浏览器 - 它不会流式传输响应,因此不适合用作Eventsource。

AWS目前没有明显适用于此用例的托管服务...您需要在EC2上拥有一个服务器(或多个服务器),消耗数据流并将其回传到已连接的浏览器。

假设运行EC2服务器是可接受的选项,则需要HTTPS和负载平衡。应用程序负载均衡器支持Web套接字,因此它还可能支持事件源。 TCP模式下的经典ELB应该能够支持事件源,但当浏览器连接断开时,它可能无法正确地向后端发出信号。这两个负载均衡器也可以为您卸载HTTPS。网络负载均衡器肯定适用于平衡事件源,但是您的实例需要为您提供HTTPS,因为NLB不会为您卸载它。

一个有点非正统的替代方案实际上可能是AWS IoT,它具有内置的websocket支持... 当然不同于事件源,但仍然是一个流式连接...在这种环境中,我想每个浏览器用户都可以成为可寻址的“事物”。


今天,AWS在API Gateway上支持了托管服务“WebSocket APIs”。 - freethinker
1
@OlegYudovich 是的,自从这篇文章写出来以后,可用的服务已经发生了变化。我会进行更新。 - Michael - sqlbot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接