| | |
| | | return nil, errors.New("marshal registerInfo err:"+err.Error()) |
| | | } |
| | | dRegData,err := json.Marshal(MsgInfo{ |
| | | MsgType: "", |
| | | MsgType: MesgType_ReqRep, |
| | | Topic: TOPIC_REGISTER, |
| | | Body: rid, |
| | | }) |
| | |
| | | data, err := json.Marshal(*info) |
| | | if err == nil { |
| | | hbd,err := json.Marshal(MsgInfo{ |
| | | MsgType: "", |
| | | MsgType: MesgType_ReqRep, |
| | | Topic: TOPIC_HEARTBEAT, |
| | | Body: data, |
| | | }) |
| | |
| | | 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) { |