SSE(Server-Sent Events)是一種用于在客戶端與服務器之間實現單向實時通信的技術。它通過在服務器端發送事件流(event stream)給客戶端,來實現服務器向客戶端推送數據的功能。
SSE 的工作原理如下:
- 客戶端通過創建一個 EventSource 對象來與服務器建立連接。
- 服務器端通過設置響應頭 Content-Type 為 text/event-stream,并在連接建立后發送一條數據,即數據流的開頭。
- 服務器端在發送數據時必須符合特定的格式,即每個數據消息必須以 “data:” 開頭,以及以兩個換行符 “\n\n” 結尾。
- 客戶端接收到服務器發送的數據后,通過監聽 message 事件來處理數據。
- 客戶端可以根據接收到的數據來更新頁面內容或執行其他操作。
SSE 技術相對于其他實時通信技術(如 WebSockets)來說,它更加簡單易用,適用于一些不需要雙向通信的場景,比如展示實時數據、通知等。