我正在尝试创建一个协作Web应用程序,其中多个用户可以在各种(共享)项目上一起工作.到目前为止,我有一个JavaScript客户端和一个本地jWebSocket服务器.
为了在部署时保持可扩展性,我想到了两个选择:
我可以使用AWS IoT而不是多个jWebSocket服务器.发布项目的变更很容易,我只需要发布到例如/project/{project-id}
.但传统的请求 - 响应机制将如何运作?
问题:通过发布到不同的主题(例如/server/1
),可以访问EC2实例处理请求.但是当JS客户端连接到AWS IoT时,它不知道发送请求的任何EC2实例.我如何将每个客户端分配给实例/主题?
在AWS Application Load Balancer后面的多个EC2实例上运行jWebSocket服务器.平衡器只是将每个客户端分配给服务器,传统的请求 - 响应流程不会成为问题.但推动变革怎么样?
问题:因为每个服务器都有自己的连接客户端集,所以它无法将更改推送到连接到另一个服务器的客户端.
混合使用jWebSocket向AWS IoT发送请求以接收事件似乎是一个草率的解决方案.
我假设我可以通过编程方式调整每个cognito身份的IoT策略,以允许/拒绝对特定项目的订阅.
由于Lambda引入了高延迟,因此使用AWS Lambda并完全放弃服务器是不可取的(如果您有不同的体验,请分享).
物联网请求响应协议
感谢你能在这个问题上给我的任何想法.