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