From 0120491f6551545b19114de049713c7e928ebc01 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 20 一月 2021 15:43:04 +0800
Subject: [PATCH] 去掉CommonReply,统一使用Reply结构,减少消息解封装

---
 hbusc.go |   55 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 32 insertions(+), 23 deletions(-)

diff --git a/hbusc.go b/hbusc.go
index 958d74e..5d50bef 100644
--- a/hbusc.go
+++ b/hbusc.go
@@ -156,22 +156,25 @@
 			var rMsg []bhomebus.Mesg
 			n := regSock.Sendandrecv(regAddr, msg, &rMsg) //n浠h〃鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁�
 			if n == 1 && len(rMsg) == 1 {
-				var cr CommonReply
+				var cr Reply
 				if err = json.Unmarshal(rMsg[0].Data, &cr);err != nil {
 					handle.printLog("unmarshal regReply err:", err)
 					return nil, errors.New("unmarshal regReply err:"+err.Error())
 				} else {
-					if cr.Status == REPLY_SUCCESS {
-						var rr RegisterReply
-						if err = json.Unmarshal(cr.Body, &rr);err ==nil {
-							regR = &rr
-							break loop
+					if cr.Success {
+						if rpd,err := json.Marshal(cr.Data);err ==nil {
+							var rr RegisterReply
+							if err = json.Unmarshal(rpd, &rr); err == nil {
+								regR = &rr
+								break loop
+							} else {
+								handle.printLog("unmarshal RegisterReply err:", err)
+							}
 						} else {
-							handle.printLog("unmarshal RegisterReply err:", err)
+							handle.printLog("marshal cr.Data err:", err)
 						}
-
 					} else {
-						handle.printLog("cr.Status:", cr.Status, "Desc:", cr.Desc)
+						handle.printLog("cr:", cr)
 					}
 
 				}
@@ -388,31 +391,37 @@
 	var ret []bhomebus.Mesg
 	n := h.sockWorker.sock.SendandrecvTimeout(reqNetNode, reqD, &ret, h.conf.sendTimeOut)
 	if n > 0 {
-		var reply CommonReply
+		var reply Reply
 		err = json.Unmarshal(ret[0].Data, &reply)
 		if err != nil {
 			h.printLog("unmarshal err:", err)
 			return nil, err
 		}
 
-		if reply.Status == REPLY_SUCCESS {
-			err = json.Unmarshal(reply.Body, &nodes)
+		if reply.Success {
+			rd,err := json.Marshal(reply.Data)
 			if err == nil {
-				return nodes, nil
+				err = json.Unmarshal(rd, &nodes)
+				if err == nil {
+					return nodes, nil
+				} else {
+					h.printLog("unmarshal err:", err, "nodes:", nodes)
+					return nil, fmt.Errorf("unmarshal to nodes err:%s", err.Error())
+				}
 			} else {
-				h.printLog("unmarshal err:", err, "nodes:", nodes)
-				return nil, fmt.Errorf("unmarshal reply.Body err:%s", err.Error())
+				return nil, fmt.Errorf("marshal reply.Data err:%s", err.Error())
 			}
+
 		} else {
-			h.printLog("reply status:", reply.Status, "desc:", reply.Desc, "body:", string(reply.Body))
-			return nil, fmt.Errorf("REPLY STATUS:%d", reply.Status)
+			h.printLog("reply success:", reply.Success, "msg:", reply.Msg, "data:", reply.Data)
+			return nil, fmt.Errorf("REPLY msg:%s", reply.Msg)
 		}
 	} else {
 		return nil,	fmt.Errorf("GetNetNodeByTopic ret n:%d", n)
 	}
 }
 
-func (h *BHBus) Request(serverId string, req *MsgInfo, milliSecs int) (*MsgInfo, error) {
+func (h *BHBus) Request(serverId string, req *MsgInfo, milliSecs int) (*Reply, error) {
 	//1.棣栧厛闇�瑕侀�氳繃topic鎷垮埌鏈満瀵瑰簲鐨凬etNode
 	rNodes, err := h.GetNetNodeByTopic(serverId, &req.SrcProc, req.Topic)
 	h.printLog("topic", req.Topic, "rNodes:", rNodes, "err:", err)
@@ -431,7 +440,7 @@
 	h.printLog("Request n: ", n, " len(ret): ", len(ret))
 
 	if n > 0 && len(ret) > 0 {
-		var resp MsgInfo
+		var resp Reply
 		if err = json.Unmarshal(ret[0].Data, &resp); err == nil {
 			return &resp, nil
 		} else {
@@ -442,8 +451,8 @@
 	return nil, fmt.Errorf("request err")
 }
 
-func (h *BHBus) Reply(replyKey int, i MsgInfo) error {
-	data,err := json.Marshal(i)
+func (h *BHBus) Reply(replyKey int, i *Reply) error {
+	data,err := json.Marshal(*i)
 	if err != nil {
 		return err
 	}
@@ -473,7 +482,7 @@
 	return nil
 }
 
-func (h *BHBus) RequestCenter(req *MsgInfo) (*CommonReply, error) {
+func (h *BHBus) RequestCenter(req *MsgInfo) (*Reply, error) {
 	data, err := json.Marshal(*req)
 	if err != nil {
 		return nil, err
@@ -487,7 +496,7 @@
 	n := h.sockWorker.sock.SendandrecvTimeout(rNodes, data,&ret, h.conf.sendTimeOut)
 	h.printLog("requestCenter n:", n, "len(ret):", len(ret))
 	if n > 0 && len(ret) > 0{
-		var cr CommonReply
+		var cr Reply
 		if err = json.Unmarshal(ret[0].Data, &cr); err == nil {
 			return &cr, nil
 		} else {

--
Gitblit v1.8.0