我一直在使用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