liuxiaolong
2020-12-23 f18874069ecdbe65ad88f8a0df59db858d85d4dc
发送心跳使用Sendandrecv模式
1个文件已修改
31 ■■■■■ 已修改文件
hbusc.go 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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代表成功发送的节点的个数
        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) {