4
我在我的PHP應用程序中使用棘輪(http://socketo.me/)用於websockets。我有多個運行該應用程序的虛擬機,並且這些機器中的每一臺也承載websocket服務。通過HAProxy將請求傳遞給其中一臺虛擬機。目前,用戶還在與應用程序連接的同一節點上使用websocket服務。棘輪多臺服務器
現在我遇到了一個websocket服務器相互討論的問題。 例如:
- USER1連接到節點1和用戶2連接到節點2
- 用戶1通過網頁套接字發送的WebSocket消息給用戶2
- 因爲他被連接到另一個節點
做這種消息的最佳做法是什麼?我有一些想法,但不知道要走什麼路線:
- 每個客戶端連接到每個websocket節點。
- 服務器發佈消息到所有其他節點以及
- 使用數據庫節點
如果新節點連接到雲這兩個第一和第二選項是不是很可擴展性之間的消息同步。第三個選項會導致一些延遲,因爲有必要檢查來自其他節點的消息是否在數據庫循環中。
有沒有其他的選擇來處理這種情況?感謝您的答案!