From 1949d086a58f062dd249a792f8bf70d4921a4ae3 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期二, 14 一月 2020 20:52:31 +0800
Subject: [PATCH] fix

---
 mangos.go |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/mangos.go b/mangos.go
index a59c188..5f6b441 100644
--- a/mangos.go
+++ b/mangos.go
@@ -8,10 +8,10 @@
 )
 
 type mangosPubSub struct {
-	url string
+	url          string
 	heartBeatUrl string
-	pubCh chan Message  //publish msg chan
-	aliveNodes gopherdiscovery.StringSet
+	pubCh        chan Message  //publish msg chan
+	surveyors    gopherdiscovery.StringSet
 
 	recvCh chan Message  //recv msg chan
 }
@@ -32,14 +32,13 @@
 
 	fmt.Println("newPub err:",err)
 	pub := &mangosPubSub{
-		url: publishUrl,
+		url:          publishUrl,
 		heartBeatUrl: heartBeatUrl,
-		aliveNodes: gopherdiscovery.NewStringSet(),
-		pubCh: make(chan Message, 50),
+		surveyors:    gopherdiscovery.NewStringSet(),
+		pubCh:        make(chan Message, 50),
 	}
 	var msgCache = make(map[string]Message)
 	//clientMsgCh := make(map[string]chan Message)
-	cacheNodes := gopherdiscovery.NewStringSet()
 	go func() {
 		for {
 			select {
@@ -50,7 +49,7 @@
 				//		ch <- msg
 				//	}
 				//}
-				if cacheNodes.Cardinality() >0 {
+				if pub.surveyors.Cardinality() >0 {
 					sendB, _ := json.Marshal(msg)
 					discoveryServer.PublishMsg(string(sendB))
 				}
@@ -62,8 +61,8 @@
 				//		clientMsgCh[nodeId] = make(chan Message)
 				//	}
 				//}
-				removedNodes := cacheNodes.Difference(nodeIds)
-				addedNodes := nodeIds.Difference(cacheNodes)
+				removedNodes := pub.surveyors.Difference(nodeIds)
+				addedNodes := nodeIds.Difference(pub.surveyors)
 				if len(nodeIds.ToSlice()) >0 {
 					if addedNodes.Cardinality() >0 { //鏈夋柊鑺傜偣涓婄嚎鐨勬椂鍊欙紝闇�瑕佸彂涓�娆℃秷鎭紝鑺傜偣绂荤嚎鐨勬椂鍊欎笉鐢ㄧ
 						fmt.Println("removedNodes:", removedNodes, "addedNodes:", addedNodes)
@@ -74,9 +73,9 @@
 							}
 						}
 					}
-					cacheNodes = nodeIds
+					pub.surveyors = nodeIds
 				} else {//璁㈤槄鑰呭叏閮ㄩ樀浜�
-					cacheNodes = nodeIds
+					pub.surveyors = nodeIds
 					time.Sleep(10 * time.Millisecond)
 				}
 			}
@@ -98,6 +97,7 @@
 		url:subcribeUrl,
 		heartBeatUrl: heartBeatUrl,
 		recvCh: make(chan Message,50),
+		surveyors: gopherdiscovery.NewStringSet(),
 	}
 	go func() {
 		peers, _ := client.Peers()
@@ -127,6 +127,10 @@
 	return false
 }
 
+func (ps *mangosPubSub) Surveyor() []string {
+	return ps.surveyors.ToSlice()
+}
+
 func (ps *mangosPubSub) Publish(msg Message) {
 	ps.pubCh <- msg
 }

--
Gitblit v1.8.0