83 lines
1.7 KiB
Plaintext
83 lines
1.7 KiB
Plaintext
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,
|
|
},
|
|
}
|
|
}
|