我想要用 node.js 使用 socket.io 套件實作一個後端
一個socket作為主機 而其他的socket會向這個主機推送資料的架構
主機的環境設想是桌機
而其他socket 設想的使用環境是手機
但是手機被網路或是誤操作導致網頁被關掉或是連結斷開讓 socket的狀態遺失的狀況可以預想到發生的機率蠻高的
而我的技術堆疊都疊在前端的部分 後端就比較沒什麼琢磨以下是我的幾個想法
想法1.
如果讓主機隨機選中三個使用者 讓他們的socket物件保存目前所在的 room中其他socket 的狀態
然後由主機同步狀態是可行的嗎
想法2.
在node伺服器端的語法寫個全域變數
用來儲存指定room中 包括主機的所有 socket
當指定事件發生時就去更新或拿這個變數裡面的資料
但我不確定所有人取到的這個變數會不會完全一樣
不知道會不會 a socket 將自己的狀態add進去之後
b socket 在讀取這個變數時 看到的依舊是全新的變數
而且有另一個問題
這個全域變數會不會因為什麼狀況 例如太久沒人用而導致變數被釋放導致資料消失
想法3.
直接用資料庫存 可是這太貴了 窩沒有鉗.jpg