goProject/.svn/pristine/5b/5bae2a2351dc932639f48484b5f38da44c769cab.svn-base
2025-01-06 16:21:36 +08:00

71 lines
1.5 KiB
Plaintext

package webServer
import (
"fmt"
"net/http"
"sync"
"goutil/logUtil"
)
// Https服务器对象
type HttpsServer struct {
addr string
certFileName string
keyFileName string
IWebServer
server http.Server
}
func (this *HttpsServer) SetAddr(addr string) {
this.addr = addr
this.server.Addr = addr
}
// 启动HttpsServer
func (this *HttpsServer) 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.ListenAndServeTLS(this.certFileName, this.keyFileName); err != nil {
panic(fmt.Sprintf("https server ListenAndServeTLS Error:%v", err))
}
}
// 创建新的HttpsServer
// isCheckIP:该属性已丢弃,可以任意赋值
func NewHttpsServer(addr, certFileName, keyFileName string, isCheckIP bool) *HttpsServer {
webServerObj := NewWebServer(isCheckIP)
return &HttpsServer{
addr: addr,
certFileName: certFileName,
keyFileName: keyFileName,
IWebServer: webServerObj,
server: http.Server{
Addr: addr,
Handler: webServerObj,
},
}
}
// 创建新的HttpsServer
func NewHttpsServer2(addr, certFileName, keyFileName string, webServerObj IWebServer) *HttpsServer {
return &HttpsServer{
addr: addr,
certFileName: certFileName,
keyFileName: keyFileName,
IWebServer: webServerObj,
server: http.Server{
Addr: addr,
Handler: webServerObj,
},
}
}