Server-Sent-Events-Simple-Demo是透过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
里面了,主要在此两个档案: