当前位置: 首页 > news >正文

韩城网站建设做脚垫版型的网站

韩城网站建设,做脚垫版型的网站,三亚本地网,信誉好的o2o网站建设event stream是属于http的一种通信方式,可以实现服务器主动推送。原理于客户端请求服务器之后一直保持链接,服务端持续返回结果给客户端。相比较于websocket有如下区别: 基于http的通信方式,在各类框架的加持下不需要开发人员自己…

event stream是属于http的一种通信方式,可以实现服务器主动推送。原理于客户端请求服务器之后一直保持链接,服务端持续返回结果给客户端。相比较于websocket有如下区别:

  1. 基于http的通信方式,在各类框架的加持下不需要开发人员自己维护链接状态,而websocket一般需要开发自己维护客户端链接(一般是一个map)
  2. 也是因为基于http,客户端请求之后便处于接收状态(发送信道关闭?),所以只能接收服务端推送,而不能客户端推送,比较适合用作通知等场景。

以gin框架为例实现:

func TestEventStream(c *gin.Context) {// 声明数据格式为event streamc.Writer.Header().Set("Content-Type", "text/event-stream")c.Writer.Header().Set("Cache-Control", "no-cache")c.Writer.Header().Set("Connection", "keep-alive")// 禁用nginx缓存,防止nginx会缓存数据导致数据流是一段一段的c.Writer.Header().Set("X-Accel-Buffering", "no")w := c.Writerflusher, _ := w.(http.Flusher)flusher.Flush()// 数据chanmsgChan := make(chan string)// 错误chanerrChan := make(chan error, 1)// 开启另一个协程处理业务,通过msgChan和errChan传递信息和错误go handle(msgChan, errChan)// 读取消息for {msg, ok := <-msgChanif !ok {break}fmt.Fprintf(w, "event: message\n")fmt.Fprintf(w, "data: %s\n\n", msg)flusher.Flush()}// 检查错误for {err, ok := <-errChanif !ok {return}fmt.Println(err)fmt.Fprintf(w, "event: error\n")fmt.Fprintf(w, "data: %s\n\n", err.Error())flusher.Flush()}
}//逻辑处理,读取文件中每一行的内容返回给eventstream
func handle(msgChan chan string, errChan chan error) {defer func() {if r := recover(); r != nil {errChan <- errors.New("system panic")}close(msgChan)close(errChan)}()file, err := os.Open("temp.txt")if err != nil {errChan <- errreturn}scanner := bufio.NewScanner(file)for scanner.Scan() {msgChan <- scanner.Text()}
}
http://www.yayakq.cn/news/786621/

相关文章:

  • 广州网站建设推广公司有哪些设计外贸商城网站建设
  • 多梦主题建设的网站网站运营技术性高吗
  • 网站开发国内外研究现状怎么做网站服务器吗
  • 网站随机代码网页小游戏修改器
  • 湖南东方红建设集团有限公司网站wordpress输出文章标签名
  • 帮人做彩票网站支付接口开发app的资金需求
  • 网站手机版如何制作开个网站需要什么条件
  • 鼓楼区建设房产和交通局网站什么是理财北京网站建设公司
  • 建设银行信用卡申请网站东莞网红打卡地
  • 广告公司网站(附falsh及源代码)网页设计怎么建站点
  • 太原模板网站建站山东十大软件公司排名
  • 传媒公司网站wordpress中文附件
  • 湖南网站制作流程photoshop教程
  • 厦门网站建设westcy中国跨境电商平台有多少
  • 泉州公司网站建设wordpress3d标签云
  • 网站开发运营经理做网站赚钱方法
  • 网站类游戏网站开发wordpress博客用域名
  • 网站建设制作、微信公众号深圳企业网站建设怎么做
  • 音乐培训如何做网站宣传做设计的几种网站
  • 如何给自己的网站做seo域名权重查询
  • 高校网站建设招标公告发帖秒收录的网站
  • 房屋租赁网站建设管理泉州网站建设技术托管
  • 创业邦使用什么网站模板wordpress编辑权限设置密码
  • 怎么做qq代刷网站望牛墩网站建设公司
  • 企业网站建设信息管理平台那个网站可以找人做兼职
  • 专业的网站建设公网站优化建设郑州
  • php网站怎么修改后台地址义乌企业网站建设
  • 宁波免费做网站wordpress 获取所有菜单
  • 开展农业信息网站建设工作总结wordpress wp-config
  • dede网站地图 调用文章深圳广告网站设计制作