From bb1e3337f6426d137c9255c1559c6d2ff3d07cab Mon Sep 17 00:00:00 2001 From: Ally Dale Date: Tue, 2 Jul 2019 09:43:19 +0800 Subject: [PATCH 1/3] optimization of bytes conversion --- network/websocketclient.go | 8 ++++---- network/websocketserver.go | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/network/websocketclient.go b/network/websocketclient.go index fa687a0..6d82eb9 100644 --- a/network/websocketclient.go +++ b/network/websocketclient.go @@ -38,7 +38,7 @@ type WebsocketClient struct { timeoutsec time.Duration bRun bool - ping string + ping []byte } const ( @@ -71,12 +71,12 @@ func (ws *WebsocketClient) Init(slf IWebsocketClient, strurl, strProxyPath strin } ws.url = strurl - ws.ping = `ping` + ws.ping = []byte(`ping`) return nil } func (ws *WebsocketClient) SetPing(ping string) { - ws.ping = ping + ws.ping = []byte(ping) } //OnRun ... @@ -182,7 +182,7 @@ func (ws *WebsocketClient) writeMsg() error { case <-timerC: if ws.state == 2 { - err := ws.WriteMessage([]byte(ws.ping)) + err := ws.WriteMessage(ws.ping) if err != nil { service.GetLogger().Printf(service.LEVER_WARN, "websocket client is disconnect [%s],information is %v", ws.url, err) ws.state = 0 diff --git a/network/websocketserver.go b/network/websocketserver.go index 145f2ed..1eb16c6 100644 --- a/network/websocketserver.go +++ b/network/websocketserver.go @@ -23,6 +23,8 @@ type IWebsocketServer interface { CreateClient(conn *websocket.Conn) *WSClient Disconnect(clientid uint64) ReleaseClient(pclient *WSClient) + Clients() []uint64 + BroadcastMsg(messageType int, msg []byte) int } type IMessageReceiver interface { From 6b1404e2035418a68914e1e31e6ea4691565d503 Mon Sep 17 00:00:00 2001 From: Ally Dale Date: Tue, 2 Jul 2019 09:57:15 +0800 Subject: [PATCH 2/3] setup default logger --- service/Logger.go | 20 ++++++++++++++++++++ service/servicemanager.go | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/service/Logger.go b/service/Logger.go index 7d4c4dc..76bec99 100644 --- a/service/Logger.go +++ b/service/Logger.go @@ -1,5 +1,9 @@ package service +import ( + "fmt" +) + const ( LEVER_UNKNOW = 0 LEVER_DEBUG = 1 @@ -10,8 +14,24 @@ const ( LEVEL_MAX = 6 ) +var defaultLogger = &LoggerFmt{} + type ILogger interface { Printf(level uint, format string, v ...interface{}) Print(level uint, v ...interface{}) SetLogLevel(level uint) } + +type LoggerFmt struct { +} + +func (slf *LoggerFmt) Printf(level uint, format string, v ...interface{}) { + fmt.Printf(format, v...) + fmt.Println("") +} +func (slf *LoggerFmt) Print(level uint, v ...interface{}) { + fmt.Println(v...) +} +func (slf *LoggerFmt) SetLogLevel(level uint) { + //do nothing +} diff --git a/service/servicemanager.go b/service/servicemanager.go index 565e63d..e52744d 100644 --- a/service/servicemanager.go +++ b/service/servicemanager.go @@ -84,7 +84,11 @@ func (slf *CServiceManager) GenServiceID() int { } func (slf *CServiceManager) GetLogger() ILogger { - return slf.logger + ret := slf.logger + if ret == nil { + ret = defaultLogger + } + return ret } var self *CServiceManager From f057166f0956385c84c58867f02e38e1782b67bd Mon Sep 17 00:00:00 2001 From: Ally Dale Date: Tue, 2 Jul 2019 10:16:09 +0800 Subject: [PATCH 3/3] add servicelist --- servicelist/servicelist.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 servicelist/servicelist.go diff --git a/servicelist/servicelist.go b/servicelist/servicelist.go new file mode 100644 index 0000000..0f02d2c --- /dev/null +++ b/servicelist/servicelist.go @@ -0,0 +1,37 @@ +package servicelist + +import ( + "github.com/duanhf2012/origin/originnode" + "github.com/duanhf2012/origin/service" +) + +var node = func() *originnode.COriginNode { + //1.新建OrginNode结点 + node := originnode.NewOriginNode() + if node == nil { + println("originnode.NewOriginNode fail") + return nil + } + return node +}() + +var serviceList []service.IService + +// 增加服务列表 在init中调用 +// 因为是init的时候调用 所以不用锁 +func PushService(s service.IService) { + serviceList = append(serviceList, s) +} + +//在main中调用该函数即可加载所有service +//debugCheckUrl "localhost:6060" +func Start(debugCheckUrl string) { + node.OpenDebugCheck(debugCheckUrl) + node.SetupService(serviceList...) + + //5.初始化结点 + node.Init() + + //6.开始结点 + node.Start() +}