From eb139e1dbd3b962a36dba95024d823f7c76ab81d Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 02 六月 2021 15:45:47 +0800
Subject: [PATCH] use MsgQueryTopicReply_BHNodeAddress

---
 hbusc.go |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/hbusc.go b/hbusc.go
index a09ea0e..bf9cc94 100644
--- a/hbusc.go
+++ b/hbusc.go
@@ -218,9 +218,20 @@
 //鑾峰彇topic瀵瑰簲鐨刱ey
 //濡傛灉浼犱簡serverId涓嶄负绌猴紝鍒欒幏鍙栨寚瀹氭満鍣ㄤ笂鐨則opic-key
 //濡傛灉server涓虹┖锛屽垯鑾峰彇鎵�鏈夎妭鐐逛笂topic-key
-func (h *BHBus) GetNetNodeByTopic(serverId string,srcProc *ProcInfo, topic string) ([]bhome_msg.BHAddress,error) {
-
-	return nil, nil
+func (h *BHBus) GetNetNodeByTopic(serverId string,srcProc *ProcInfo, topic string) ([]*bhome_msg.MsgQueryTopicReply_BHNodeAddress,error) {
+	dest := bhome_msg.BHAddress{}
+	reqTopic := bhome_msg.MsgQueryTopic{
+		Topic: []byte(topic),
+	}
+	rep := bhome_msg.MsgQueryTopicReply{}
+	if bhsgo.QueryTopicAddress(&dest, &reqTopic, &rep, h.conf.sendTimeOut) {
+		return rep.NodeAddress, nil
+	}
+	if rep.Errmsg != nil {
+		h.printLog("QueryTopicAddress errCode:", rep.Errmsg.ErrCode, "errMsg:", string(rep.Errmsg.ErrString))
+		return nil, errors.New(string(rep.Errmsg.ErrString))
+	}
+	return nil, errors.New("bhsgo.QueryTopicAddress ret false")
 }
 
 func (h *BHBus) Request(serverId string, req *bhome_msg.MsgRequestTopic, milliSecs int) (*Reply, error) {
@@ -243,10 +254,12 @@
 	}
 }
 
-func (h *BHBus) RequestOnly(req *bhome_msg.MsgRequestTopic, destArr []bhome_msg.BHAddress) ([]byte, error) {
+func (h *BHBus) RequestOnly(req *bhome_msg.MsgRequestTopic, destArr []*bhome_msg.MsgQueryTopicReply_BHNodeAddress) ([]byte, error) {
 	dest := bhome_msg.BHAddress{}
 	if destArr != nil && len(destArr) > 0 {
-		dest = destArr[0]
+		if destArr[0].Addr != nil {
+			dest = *(destArr[0].Addr)
+		}
 	}
 	pid := ""
 	r := bhome_msg.MsgRequestTopicReply{}

--
Gitblit v1.8.0