我一直在使用Google,我对此有点困惑。几乎所有我读过的关于它的东西都有1个用例,但它对我来说似乎并不是最好的。也许它是?不确定。可伸缩Websockets - 我很困惑
让我先设置环境: 的前端被AngularJS 通过Laravel供电(我们会打电话给他们一个& B)的两个后端的API供电。
现在,所有这3个规模都是相互独立的。每个人都在自己的码头集装箱。每个处理路由和任何事情的前面都有负载平衡器。我正在为我的数据库使用RDS。
现在,我通常看到的方式是使用负载均衡器的hash-ip函数,以便您只需连接到处理所需web服务器事件的服务器即可。
那么,这并不像我想要的那样。真的,长轮询似乎是我想要的,但我想也许我可以让websocket工作。基本上,任何时候任何人在任何一个API上改变任何东西,都会触发一个事件。然后我需要所有的前端进行更新。现在据我所知,websockets使用redis来跟踪事件。
如果它确实使用redis,那么如何在多台服务器上缩放redis?或者,如果使用elasticache之类的东西更容易,那么我就不必处理那部分?
这一切基本上是真的吗?我的思路是否正确?
感谢您的关注。对不起,如果它有点流言蜚语或困惑。我仍然不清楚,所以我写的所有内容都只是我的想法。
的WebSockets自己什么都没有做的Redis。有一个socket.io(使用webSockets)的多服务器实现,它使用redis来存储状态。在那个实现中,有一个中央redis存储库,扩展中涉及的所有服务器都可以咨询,以便与可能连接到不同服务器的用户进行通信。你可以阅读关于redis/socket.io的组合[这里](http://socket.io/docs/using-multiple-nodes/)。 – jfriend00
我想通了。只有几个额外的步骤,我没有看到。 – Kenyon