共享購物車總結心得

目前的做法

想像一下,我們現在的 WebSocket 機制就像是一個大教室:

  • 每個連線的使用者都在這個教室裡

  • A 對 B 說話的時候,全班都聽得到

  • 雖然大家都聽到了,但只有 B 會有反應

  • 其他人:「喔~這不是在叫我啊」 就繼續做自己的事

來個生動的例子 🛒

小明:「欸欸!groupId 123 的購物車,我要買 10 個漂亮商品!」
(全教室都聽到了)

系統檢查:
小華:「我是 groupId 456,不是在叫我」(無視中)
小美:「我是 groupId 789,也不是在叫我」(繼續滑手機)
小花:「咦!我是 groupId 123 耶,快更新購物車!」

這樣做的好處 👍

  1. 實現超級簡單

  2. 開發速度快

  3. 程式碼易懂

  4. 前端可以自由決定要發什麼訊息

可能的缺點 🤔

  1. 安全性考量

    • 前端可以任意發送訊息

    • 後端沒有驗證機制

    • 像是小明說:「我要幫 groupId 123 清空購物車!」,後端就真的會轉發這個訊息(雖然不會影響到 DB)

  2. 效能議題

    • 所有人都收到訊息,即使不需要

    • 像是整個教室都要聽小明講話,有點浪費

  3. 擴展性限制

    • 如果要加新功能,可能要改很多地方

    • 訊息格式不夠規範化

未來可能會迎來一次大重構也說不定

小結 📝

現在的實現方式就像是一個熱鬧的教室,雖然有點吵,但簡單直接! 之後可能會需要一些規範和秩序,但目前這樣的實現方式 對於快速開發和驗證功能來說是個不錯的選擇~

Last updated