From f18874069ecdbe65ad88f8a0df59db858d85d4dc Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 23 十二月 2020 10:50:03 +0800
Subject: [PATCH] 发送心跳使用Sendandrecv模式

---
 hbusc.go |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/hbusc.go b/hbusc.go
index f3532bf..75c9ae2 100644
--- a/hbusc.go
+++ b/hbusc.go
@@ -123,7 +123,7 @@
 					return nil, errors.New("marshal registerInfo err:"+err.Error())
 				}
 				dRegData,err := json.Marshal(MsgInfo{
-					MsgType: "",
+					MsgType: MesgType_ReqRep,
 					Topic:   TOPIC_REGISTER,
 					Body:    rid,
 				})
@@ -303,7 +303,7 @@
 	data, err := json.Marshal(*info)
 	if err == nil {
 		hbd,err := json.Marshal(MsgInfo{
-			MsgType: "",
+			MsgType: MesgType_ReqRep,
 			Topic:   TOPIC_HEARTBEAT,
 			Body:    data,
 		})
@@ -311,18 +311,29 @@
 			h.printLog("marshal heartbeat msgInfo err:", err)
 			return err
 		}
-		return h.send2(h.sockHB, hbd, h.conf.sendTimeOut)
+		var rMsg []bhomebus.Mesg
+		hbAddr := append([]bhomebus.NetNode{}, bhomebus.NetNode{
+			Key: h.sockHB.peer,
+		})
+		n := h.sockHB.sock.Sendandrecv(hbAddr, hbd, &rMsg) //n浠h〃鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁�
+
+		if n > 0 {
+			return nil
+		} else {
+			h.printLog("sockHB.Sendandrecv n:", n, "len(rMsg):", len(rMsg))
+			return fmt.Errorf("sockHB Sendandrecv ret n:%d", n)
+		}
 	}
 	return err
 }
 
-func (h *BHBus) send2(s *sockClient, data []byte, timeout int) error {
-	n := s.sock.SendtoTimeout(data, s.peer, timeout)
-	if n == 0 {
-		return nil
-	}
-	return errors.New("SendtoTimeout n:"+strconv.Itoa(n))
-}
+//func (h *BHBus) send2(s *sockClient, data []byte, timeout int) error {
+//	n := s.sock.SendtoTimeout(data, s.peer, timeout)
+//	if n == 0 {
+//		return nil
+//	}
+//	return errors.New("SendtoTimeout n:"+strconv.Itoa(n))
+//}
 
 //鏇存柊涓婚鍒楄〃
 func (h *BHBus)  UpdateNodeTopics(arr []NodeInfo) {

--
Gitblit v1.8.0