共享購物車總結心得
目前的做法
想像一下,我們現在的 WebSocket 機制就像是一個大教室:
每個連線的使用者都在這個教室裡
A 對 B 說話的時候,全班都聽得到
雖然大家都聽到了,但只有 B 會有反應
其他人:「喔~這不是在叫我啊」 就繼續做自己的事
來個生動的例子 🛒
小明:「欸欸!groupId 123 的購物車,我要買 10 個漂亮商品!」
(全教室都聽到了)
系統檢查:
小華:「我是 groupId 456,不是在叫我」(無視中)
小美:「我是 groupId 789,也不是在叫我」(繼續滑手機)
小花:「咦!我是 groupId 123 耶,快更新購物車!」
這樣做的好處 👍
實現超級簡單
開發速度快
程式碼易懂
前端可以自由決定要發什麼訊息
可能的缺點 🤔
安全性考量
前端可以任意發送訊息
後端沒有驗證機制
像是小明說:「我要幫 groupId 123 清空購物車!」,後端就真的會轉發這個訊息(雖然不會影響到 DB)
效能議題
所有人都收到訊息,即使不需要
像是整個教室都要聽小明講話,有點浪費
擴展性限制
如果要加新功能,可能要改很多地方
訊息格式不夠規範化
未來可能會迎來一次大重構也說不定
小結 📝
現在的實現方式就像是一個熱鬧的教室,雖然有點吵,但簡單直接! 之後可能會需要一些規範和秩序,但目前這樣的實現方式 對於快速開發和驗證功能來說是個不錯的選擇~
Last updated