Server-Sent-Events-Simple-Demo
此Repository
透過Server-Sent-Events(SSE)
來實現Golang Server
主動推送訊息給Web Client
什麼是SSE
特性:
- 透過
HTTP Stream
的特性,實現Server
主動推播的功能 - 由
HTML5
規範原生支持 - 瀏覽器端已原生實作斷線時的
retry connection handle
場景:
- 天氣即時佈告欄推播
- 聊天室: 有許多人認為聊天室就用
Websocket
即可,但Websocket
傳遞訊息的方式非常簡單,無法像Restful API
擁有4xx等Error Code
,所以要怎麼表示這些錯誤要開發者手動實作。如果透過SSE
推播 +Restful API
取值,就可以善用Restful API
的Error Code
特性來達到聊天效果。甚至搭配對Protocol
更嚴謹的GRPC-Web也是很好的方案。
需要安裝
docker
docker-compose
怎麼運作?
docker-compos up
- 瀏覽器連接至
localhost:5000
流程
解釋
整體我都用註釋寫在code
裡面了,主要在此兩個檔案: