我正在开发一个股票应用程序,并必须保持用户浏览器与价格变化的最新
我不需要访问过去的数据,浏览器只需在数据发生变化时获取当前数据
有没有可能过滤dynamodb流并公开一个端点(在api网关后面),以便与javascript EventSource一起使用?
发布于 2018-12-20 16:56:35
我意识到这不是使用服务器发送的事件,而是亚马逊网络服务刚刚宣布的API Gateway的无服务器WebSockets。定价基于连接的分钟数和发送的消息数。
文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html
发布于 2018-01-28 01:51:45
API网关是一种存储转发服务。它收集来自任何后端的响应(Lambda、HTTP服务器等)。然后将其作为块返回给浏览器--它不会流式传输响应,因此它不适合用作Eventsource。
AWS目前还没有明显适合此用例的托管服务产品...您需要一个(或多个) EC2上的服务器,使用数据流并将其转发回连接的浏览器。
假设运行EC2服务器是一个可接受的选项,那么您就需要HTTPS和负载平衡。应用程序负载均衡器支持web套接字,因此它也可能支持eventsource。TCP (而不是HTTP)模式中的Classic ELB应该可以毫无问题地支持eventsource,尽管它可能无法在浏览器连接丢失时正确地向后端发出信号。这两个平衡器也可以为您卸载HTTPS。网络负载均衡器肯定可以平衡事件源,但您的实例需要提供HTTPS,因为NLB不会为您卸载它。
另一种有点非正统的选择实际上可能是亚马逊网络服务IoT,它有内置的websocket支持...当然,与eventsource不同,但仍然是流连接……在这样的环境中,我认为每个浏览器用户都可以是一个可寻址的“东西”。
https://stackoverflow.com/questions/48474979
复制