goProject/trunk/framework/webServer/httpServer.go
皮蛋13361098506 1b77f62820 初始化项目
2025-01-06 16:01:02 +08:00

83 lines
1.7 KiB
Go

package webServer
import (
"fmt"
"net/http"
"sync"
"time"
"goutil/logUtil"
)
// Http服务器对象
type HttpServer struct {
addr string
IWebServer
server http.Server
}
func (this *HttpServer) SetAddr(addr string) {
this.addr = addr
this.server.Addr = addr
}
// 启动HttpServer
func (this *HttpServer) Start(wg *sync.WaitGroup) {
defer func() {
wg.Done()
}()
// 开启监听
msg := fmt.Sprintf("http server begins to listen on: %s...", this.addr)
fmt.Println(msg)
logUtil.InfoLog(msg)
if err := this.server.ListenAndServe(); err != nil {
panic(fmt.Sprintf("http server ListenAndServe Error:%v", err))
}
}
// 创建新的HttpServer
// isCheckIP:该属性已丢弃,可以任意赋值
func NewHttpServer(addr string, isCheckIP bool) *HttpServer {
webServerObj := NewWebServer(isCheckIP)
return &HttpServer{
addr: addr,
IWebServer: webServerObj,
server: http.Server{
Addr: addr,
Handler: webServerObj,
},
}
}
// 创建新的HttpServer
func NewHttpServer2(addr string, webServerObj IWebServer) *HttpServer {
return &HttpServer{
addr: addr,
IWebServer: webServerObj,
server: http.Server{
Addr: addr,
Handler: webServerObj,
},
}
}
// 创建新的HttpServer
// isCheckIP:该属性已丢弃,可以任意赋值
func NewHttpServer3(addr string, isCheckIP bool, readTimeout time.Duration, readHeaderTimeout time.Duration, writeTimeout time.Duration) *HttpServer {
webServerObj := NewWebServer(isCheckIP)
return &HttpServer{
addr: addr,
IWebServer: webServerObj,
server: http.Server{
Addr: addr,
Handler: webServerObj,
ReadTimeout: readTimeout,
ReadHeaderTimeout: readHeaderTimeout,
WriteTimeout: writeTimeout,
},
}
}