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

哪些网站做机票酒店有优势乡镇做电器网站能不能营运

哪些网站做机票酒店有优势,乡镇做电器网站能不能营运,wordpress基于什么语言,做律师网站电销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/476045/

相关文章:

  • 中山手机网站建设电话桥东企业做网站
  • 山西建筑网站设计设计网页传奇平台
  • 华星建设集团网站新市区做网站
  • 合肥网站制作套餐设计上海兼职网站建设
  • 回龙观网站建设设计师必去的网站
  • 做银行应该关注的网站个人中心页面设计html
  • 能够做外贸的网站有哪些wordpress 更改编辑器
  • 百度搜索不到公司网站wordpress tag导入
  • 只能家居网站建设目的wordpress分类别名获取文章
  • 东营区住房和城乡建设局网站北京制作网站公司哪家好
  • 一个网站用两个域名建设银行网上银行网站可以开通网银
  • 钟落潭有没有做网站的福州免费企业网站建站
  • jquery 网站根目录华为云服务器怎么做网站
  • 江门模板建站源码东莞计算机培训机构哪个最好
  • 网站推广服务外包中国视觉设计网站
  • 电子商务网站建立企业年金交满多少年才能领取
  • 长沙做网站 青创互联邯郸网站建设taigew
  • 网站备案注册程序员培训班哪家好
  • 工业设计网站下载手机设计软件哪个好
  • 如何在木上做网站钱建网站
  • 网站开发怎么切换多种语言wordpress接入微信登录
  • 手机端模板网站有关外贸的网站有哪些
  • 网址转换二维码广州网站优化步骤
  • 流量套餐网站长安镇网站建设
  • 泉州网站制作网页济宁网站建设 企诺
  • 网上做中考题的网站柳州门户网站建设公司排名
  • 建设银行广西分行网站电子网站建设基本流程图
  • 临沂做网站找哪家好枣庄网站设计
  • 扬州中兴建设有限公司网站网络运营推广怎么做
  • 武义网站建设最新国际新闻50条简短