请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

插入代码

1回答

蓝胖子的编程梦 2024-07-17 22:53:28

同样可以在gin 框架上包装一个自己的http server,例如像我下面这样封装,本质上是用gin.Engine 替代了原生http框架的http.ServeMux

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package main
 
import (
    "context"
    "github.com/gin-gonic/gin"
    "net/http"
)
 
type HttpServer struct {
    mux *gin.Engine
    *http.Server
}
 
func NewHttpServer(addr string) *HttpServer {
    mux := gin.New()
    server := &http.Server{Addr: addr, Handler: mux}
    s := &HttpServer{mux: mux, Server: server}
    s.mux.GET("/hello", func(c *gin.Context) {
       c.Writer.Write([]byte("OK"))
    })
    return s
}
 
func (h *HttpServer) Start() {
    go func() {
       err := h.ListenAndServe()
       if err != nil {
          panic(err)
       }
    }()
}
 
func (h *HttpServer) Close() {
    h.Shutdown(context.TODO())
}
 
func main() {
    ch := make(chan int)
    h := NewHttpServer(":8080")
    h.Start()
    <-ch
}


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号