From 986c949195d1f50758602f198cae76d56c3b8d56 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期五, 08 一月 2021 18:16:52 +0800
Subject: [PATCH] 如果没有pubTopics或者subTopic,则不启动server接收
---
micronode.go | 4 ++--
hbusc.go | 54 ++++++++++++++++++++++++++++++------------------------
2 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/hbusc.go b/hbusc.go
index bd7bd29..5831755 100644
--- a/hbusc.go
+++ b/hbusc.go
@@ -192,24 +192,27 @@
}
}
- handle.wg = &sync.WaitGroup{}
-
- sockReply := bhomebus.OpenSocket()
- sockReply.ForceBind(int(regR.ReplyKey))
- handle.wg.Add(1)
- //serve server reply
- go recvRoutine(ctx, sockReply, handle.wg, handle.chReply, handle.printLog)
- handle.sockRep = &sockServer{
- sock: sockReply,
- info: &ri.Proc,
- }
-
//缁存寔蹇冭烦鐨剆ocket
sockHB := bhomebus.OpenSocket()
handle.sockHB = &sockClient{
sock: sockHB,
peer: int(regR.HeartbeatKey),
}
+
+ handle.wg = &sync.WaitGroup{}
+
+ if ri.PubTopic != nil && len(ri.PubTopic) > 0 {
+ sockReply := bhomebus.OpenSocket()
+ sockReply.ForceBind(int(regR.ReplyKey))
+ handle.wg.Add(1)
+ //serve server reply
+ go recvRoutine(ctx, sockReply, handle.wg, handle.chReply, handle.printLog)
+ handle.sockRep = &sockServer{
+ sock: sockReply,
+ info: &ri.Proc,
+ }
+ }
+
//鍙戝竷娑堟伅鐨剆ocket, pub鏄皢娑堟伅鍙戝竷鍒癰us涓紝鎵�浠ヤ笉闇�瑕佹寚瀹歬ey
sockPub := bhomebus.OpenSocket()
@@ -218,19 +221,22 @@
peer: -1,
}
- //璁㈤槄娑堟伅鐨剆ocket
- sockSub := bhomebus.OpenSocket()
- //璁㈤槄鎵�鏈変富棰�
- for _,v := range ri.SubTopic {
- sockSub.Sub(v)
- }
+ //鏈夎闃呮秷鎭墠闇�瑕佸惎鍔ㄥ崗绋嬫帴鏀舵秷鎭�
+ if ri.SubTopic != nil && len(ri.SubTopic) > 0 {
+ //璁㈤槄娑堟伅鐨剆ocket
+ sockSub := bhomebus.OpenSocket()
+ //璁㈤槄鎵�鏈変富棰�
+ for _,v := range ri.SubTopic {
+ sockSub.Sub(v)
+ }
- //鍚姩璁㈤槄淇℃伅鎺ユ敹
- handle.wg.Add(1)
- go recvRoutine(ctx, sockSub, handle.wg, handle.chSub, handle.printLog)
- handle.sockSub = &sockClient{
- sock: sockSub,
- peer: -1,
+ //鍚姩璁㈤槄淇℃伅鎺ユ敹
+ handle.wg.Add(1)
+ go recvRoutine(ctx, sockSub, handle.wg, handle.chSub, handle.printLog)
+ handle.sockSub = &sockClient{
+ sock: sockSub,
+ peer: -1,
+ }
}
sockWorker := bhomebus.OpenSocket()
diff --git a/micronode.go b/micronode.go
index 88f9bfd..5e105d2 100644
--- a/micronode.go
+++ b/micronode.go
@@ -22,7 +22,7 @@
SubCh chan *MsgInfo
}
-func NewMicroNode(ctx context.Context,q chan os.Signal, serverId string, reg *RegisterInfo, procInfo *ProcInfo,fnLog func(v ...interface{})) (*MicroNode, error){
+func NewMicroNode(ctx context.Context,q chan os.Signal, serverId string, reg *RegisterInfo, fnLog func(v ...interface{})) (*MicroNode, error){
conf := NewConfig(KEY_REGISTER,512,5,100,100,100, fnLog)
handle, err := Register(ctx, q, conf, reg)
if err != nil {
@@ -33,7 +33,7 @@
serverId: serverId,
handle: handle,
reg: reg,
- procInfo: procInfo,
+ procInfo: ®.Proc,
fnLog: fnLog,
SubCh: make(chan *MsgInfo, 512),
}
--
Gitblit v1.8.0