From e71c339f0da32f98269e23443388cac075a353ec Mon Sep 17 00:00:00 2001 From: boyce Date: Sat, 26 Jan 2019 16:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- network/httpserver.go | 4 ---- service/Service.go | 8 ++++++- sysservice/websocketservice.go | 43 ++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 sysservice/websocketservice.go diff --git a/network/httpserver.go b/network/httpserver.go index 864a2e8..1347900 100644 --- a/network/httpserver.go +++ b/network/httpserver.go @@ -30,7 +30,3 @@ func (slf *HttpServer) startListen() error { return nil } - -func (slf *WebsocketServer) Stop() { - -} diff --git a/service/Service.go b/service/Service.go index e9117a0..ad58061 100644 --- a/service/Service.go +++ b/service/Service.go @@ -30,6 +30,7 @@ type IService interface { OnInit() error OnEndInit() error OnRun() error + OnRunLoop() error OnDestory() error OnFetchService(iservice IService) error GetServiceType() int @@ -120,8 +121,13 @@ func (slf *BaseService) Init(Iservice interface{}, servicetype int) error { return nil } +func (slf *BaseService) OnRunLoop() error { + return nil +} + func (slf *BaseService) Run(service IService, exit chan bool, pwaitGroup *sync.WaitGroup) error { defer pwaitGroup.Done() + service.OnRun() for { select { case <-exit: @@ -130,7 +136,7 @@ func (slf *BaseService) Run(service IService, exit chan bool, pwaitGroup *sync.W default: } slf.tickTime = time.Now().UnixNano() / 1e6 - service.OnRun() + service.OnRunLoop() slf.tickTime = time.Now().UnixNano() / 1e6 } diff --git a/sysservice/websocketservice.go b/sysservice/websocketservice.go new file mode 100644 index 0000000..21a18d2 --- /dev/null +++ b/sysservice/websocketservice.go @@ -0,0 +1,43 @@ +package sysservice + +import ( + "github.com/duanhf2012/origin/network" + "github.com/duanhf2012/origin/service" +) + +type WSServerService struct { + service.BaseService + wsserver network.WebsocketServer + + pattern string + port uint16 + messageReciver network.IMessageReceiver + bEnableCompression bool +} + +func (ws *WSServerService) OnInit() error { + + ws.wsserver.Init(ws.pattern, ws.port, ws.messageReciver, ws.bEnableCompression) + return nil +} + +func (ws *WSServerService) OnRun() error { + ws.wsserver.Start() + + return nil +} + +func NewWSServerService(pattern string, port uint16, messageReciver network.IMessageReceiver, bEnableCompression bool) *WSServerService { + wss := new(WSServerService) + wss.pattern = pattern + wss.port = port + wss.messageReciver = messageReciver + wss.bEnableCompression = bEnableCompression + + wss.Init(wss, 0) + return wss +} + +func (ws *WSServerService) OnDestory() error { + return nil +}