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