71 lines
1.5 KiB
Plaintext
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,
|
|
},
|
|
}
|
|
}
|