Week32 - Server-Sent-Events(SSE)!Websocket以外的Server Push选择 [

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 APIError Code特性来达到聊天效果。甚至搭配对Protocol更严谨的GRPC-Web也是很好的方案。

需要安装

dockerdocker-compose

怎么运作?

docker-compos up浏览器连接至localhost:5000

流程

解释

整体我都用注释写在code里面了,主要在此两个档案:

index.htmlmain.go

参考

使用 server-sent 事件 - Web APIs | MDNServer-Sent Events 教程 - 阮一峰的网络日志go - How to write a stream API using gin-gonic server in golang? Tried c.Stream didnt work - Stack OverflowJavaScript - Polling、WebSocket 与 SSE 介绍 - iT 邦帮忙::一起帮忙解决难题,拯救 IT 人的一天

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章