Categories: Gin 教程

Gin HTTP2 server 推送

http.Pusher​ 仅支持 ​go1.8+

package main

import (
 "html/template"
 "log"

 "github.com/gin-gonic/gin"
)

var html = template.Must(template.New("https").Parse(`
<html>
<head>
  <title>Https Test</title>
  <script src="/assets/app.js"></script>
</head>
<body>
  <h1 style="">Welcome, Ginner!</h1>
</body>
</html>
`))

func main() {
 r := gin.Default()
 r.Static("/assets", "./assets")
 r.SetHTMLTemplate(html)

 r.GET("/", func(c *gin.Context) {
  if pusher := c.Writer.Pusher(); pusher != nil {
   // 使用 pusher.Push() 做服务器推送
   if err := pusher.Push("/assets/app.js", nil); err != nil {
    log.Printf("Failed to push: %v", err)
   }
  }
  c.HTML(200, "https", gin.H{
   "status": "success",
  })
 })

 // 监听并在 https://127.0.0.1:8080 上启动服务
 r.RunTLS(":8080", "./testdata/server.pem", "./testdata/server.key")
}

terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

5 小时 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago