mirror of
https://github.com/duanhf2012/origin.git
synced 2026-03-07 06:49:37 +08:00
新增wss与https功能
This commit is contained in:
@@ -86,7 +86,7 @@ func (slf *CCluster) ListenService() error {
|
|||||||
|
|
||||||
tcplisten, err2 := net.ListenTCP("tcp", tcpaddr)
|
tcplisten, err2 := net.ListenTCP("tcp", tcpaddr)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_FATAL, "ListenTCP error:%v", err)
|
service.GetLogger().Printf(sysmodule.LEVER_FATAL, "ListenTCP error:%v", err2)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
return err2
|
return err2
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ type HttpServer struct {
|
|||||||
writetimeout time.Duration
|
writetimeout time.Duration
|
||||||
|
|
||||||
httpserver *http.Server
|
httpserver *http.Server
|
||||||
|
certfile string
|
||||||
|
keyfile string
|
||||||
|
|
||||||
|
ishttps bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *HttpServer) Init(port uint16, handler http.Handler, readtimeout time.Duration, writetimeout time.Duration) {
|
func (slf *HttpServer) Init(port uint16, handler http.Handler, readtimeout time.Duration, writetimeout time.Duration) {
|
||||||
@@ -34,7 +38,6 @@ func (slf *HttpServer) Start() {
|
|||||||
|
|
||||||
func (slf *HttpServer) startListen() error {
|
func (slf *HttpServer) startListen() error {
|
||||||
listenPort := fmt.Sprintf(":%d", slf.port)
|
listenPort := fmt.Sprintf(":%d", slf.port)
|
||||||
|
|
||||||
slf.httpserver = &http.Server{
|
slf.httpserver = &http.Server{
|
||||||
Addr: listenPort,
|
Addr: listenPort,
|
||||||
Handler: slf.handler,
|
Handler: slf.handler,
|
||||||
@@ -43,11 +46,24 @@ func (slf *HttpServer) startListen() error {
|
|||||||
MaxHeaderBytes: 1 << 20,
|
MaxHeaderBytes: 1 << 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := slf.httpserver.ListenAndServe()
|
var err error
|
||||||
|
if slf.ishttps == true {
|
||||||
|
err = slf.httpserver.ListenAndServeTLS(slf.certfile, slf.keyfile)
|
||||||
|
} else {
|
||||||
|
err = slf.httpserver.ListenAndServe()
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("http.ListenAndServe(%d, nil) error\n", slf.port)
|
fmt.Printf("http.ListenAndServe(%d, %v) error\n", slf.port, err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *HttpServer) SetHttps(certfile string, keyfile string) bool {
|
||||||
|
slf.certfile = certfile
|
||||||
|
slf.keyfile = keyfile
|
||||||
|
slf.ishttps = true
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
@@ -58,13 +58,16 @@ type WebsocketServer struct {
|
|||||||
|
|
||||||
httpserver *http.Server
|
httpserver *http.Server
|
||||||
reciver map[string]Reciver
|
reciver map[string]Reciver
|
||||||
|
|
||||||
|
certfile string
|
||||||
|
keyfile string
|
||||||
|
iswss bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *WebsocketServer) Init(port uint16) {
|
func (slf *WebsocketServer) Init(port uint16) {
|
||||||
|
|
||||||
slf.port = port
|
slf.port = port
|
||||||
slf.mapClient = make(map[uint64]*WSClient)
|
slf.mapClient = make(map[uint64]*WSClient)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *WebsocketServer) CreateClient(conn *websocket.Conn) *WSClient {
|
func (slf *WebsocketServer) CreateClient(conn *websocket.Conn) *WSClient {
|
||||||
@@ -105,7 +108,13 @@ func (slf *WebsocketServer) startListen() {
|
|||||||
MaxHeaderBytes: 1 << 20,
|
MaxHeaderBytes: 1 << 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := slf.httpserver.ListenAndServe()
|
var err error
|
||||||
|
if slf.iswss == true {
|
||||||
|
err = slf.httpserver.ListenAndServeTLS(slf.certfile, slf.keyfile)
|
||||||
|
} else {
|
||||||
|
err = slf.httpserver.ListenAndServe()
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("http.ListenAndServe(%d, nil) error\n", slf.port)
|
fmt.Printf("http.ListenAndServe(%d, nil) error\n", slf.port)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
@@ -189,3 +198,10 @@ func (slf *WebsocketServer) initRouterHandler() http.Handler {
|
|||||||
cors := cors.AllowAll()
|
cors := cors.AllowAll()
|
||||||
return cors.Handler(r)
|
return cors.Handler(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *WebsocketServer) SetWSS(certfile string, keyfile string) bool {
|
||||||
|
slf.certfile = certfile
|
||||||
|
slf.keyfile = keyfile
|
||||||
|
slf.iswss = true
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,10 +33,17 @@ type HttpServerService struct {
|
|||||||
port uint16
|
port uint16
|
||||||
|
|
||||||
controllerMaps ControllerMapsType
|
controllerMaps ControllerMapsType
|
||||||
|
certfile string
|
||||||
|
keyfile string
|
||||||
|
ishttps bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *HttpServerService) OnInit() error {
|
func (slf *HttpServerService) OnInit() error {
|
||||||
slf.httpserver.Init(slf.port, slf.initRouterHandler(), 10*time.Second, 10*time.Second)
|
slf.httpserver.Init(slf.port, slf.initRouterHandler(), 10*time.Second, 10*time.Second)
|
||||||
|
if slf.ishttps == true {
|
||||||
|
slf.httpserver.SetHttps(slf.certfile, slf.keyfile)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,3 +128,15 @@ func (slf *HttpServerService) GetMethod(strCallPath string) (*reflect.Value, err
|
|||||||
|
|
||||||
return &value, nil
|
return &value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *HttpServerService) SetHttps(certfile string, keyfile string) bool {
|
||||||
|
if certfile == "" || keyfile == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
slf.ishttps = true
|
||||||
|
slf.certfile = certfile
|
||||||
|
slf.keyfile = keyfile
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
@@ -40,3 +40,8 @@ func (ws *WSServerService) OnDestory() error {
|
|||||||
func (ws *WSServerService) SetupReciver(pattern string, messageReciver network.IMessageReceiver, bEnableCompression bool) {
|
func (ws *WSServerService) SetupReciver(pattern string, messageReciver network.IMessageReceiver, bEnableCompression bool) {
|
||||||
ws.wsserver.SetupReciver(pattern, messageReciver, bEnableCompression)
|
ws.wsserver.SetupReciver(pattern, messageReciver, bEnableCompression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *WSServerService) SetWSS(certfile string, keyfile string) bool {
|
||||||
|
slf.wsserver.SetWSS(certfile, keyfile)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user