Server-Sent Events (SSE) 實例
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
前陣子才提到 SSE 是除了 WebSocket 與 pulling 之外,另一種做即時通知的做法,今天就看到一篇文章分享作者的團隊怎麼設計 SSE 的後端系統架構,蠻值得一讀的,讀完之後保證診所叫號、餐廳排隊之類的系統,都變成不難的事!
How We Used Server-Sent Events (SSE) to Deliver Real-Time Notifications on Our Backend
簡單來說,這個系統的核心功能是由 redis 的 pub/sub 功能所實現,有 1 個 API 專門寫入訊息到 redis, 並由 redis 發佈到下游訂閱消息的 SSE API, 而且這個 API 會需要視身份過濾 redis 發過來的訊息,避免使用者看到不屬於他的訊息。同時,可以發現作者他們用 Node.js 作為後端應用,相當適合 SSE 這種 I/O 密集型(I/O-bound)的情境。