diff --git a/network/httpserver.go b/network/httpserver.go index 4d66746..4d2b754 100644 --- a/network/httpserver.go +++ b/network/httpserver.go @@ -5,6 +5,9 @@ import ( "net/http" "os" "time" + + "github.com/duanhf2012/origin/service" + "github.com/duanhf2012/origin/sysmodule" ) type HttpServer struct { @@ -54,6 +57,7 @@ func (slf *HttpServer) startListen() error { } if err != nil { + service.GetLogger().Printf(sysmodule.LEVER_FATAL, "http.ListenAndServe(%d, nil) error:%v\n", listenPort, err) fmt.Printf("http.ListenAndServe(%d, %v) error\n", slf.port, err) os.Exit(1) } diff --git a/network/websocketserver.go b/network/websocketserver.go index b28d30b..58084ce 100644 --- a/network/websocketserver.go +++ b/network/websocketserver.go @@ -7,6 +7,9 @@ import ( "sync" "time" + "github.com/duanhf2012/origin/service" + "github.com/duanhf2012/origin/sysmodule" + "github.com/gorilla/mux" "github.com/gorilla/websocket" "github.com/gotoxu/cors" @@ -15,6 +18,7 @@ import ( type IWebsocketServer interface { SendMsg(clientid uint64, messageType int, msg []byte) bool CreateClient(conn *websocket.Conn) *WSClient + Disconnect(clientid uint64) ReleaseClient(pclient *WSClient) } @@ -116,6 +120,7 @@ func (slf *WebsocketServer) startListen() { } if err != nil { + service.GetLogger().Printf(sysmodule.LEVER_FATAL, "http.ListenAndServe(%d, nil) error:%v\n", slf.port, err) fmt.Printf("http.ListenAndServe(%d, nil) error\n", slf.port) os.Exit(1) } @@ -145,6 +150,18 @@ func (slf *WebsocketServer) SendMsg(clientid uint64, messageType int, msg []byte return true } +func (slf *WebsocketServer) Disconnect(clientid uint64) { + slf.locker.Lock() + defer slf.locker.Unlock() + value, ok := slf.mapClient[clientid] + if ok == false { + return + } + + value.conn.Close() + //slf.ReleaseClient(value) +} + func (slf *WebsocketServer) Stop() { }