| | |
| | | return nil |
| | | } |
| | | |
| | | func (h *BHBus) RequestCenter(req *MsgInfo) (*CommonReply, error) { |
| | | data, err := json.Marshal(*req) |
| | | if err != nil { |
| | | return nil, err |
| | | } |
| | | rNodes := append([]bhomebus.NetNode{}, bhomebus.NetNode{ |
| | | Key: KEY_QUERY, |
| | | }) |
| | | h.mtxWorker.Lock() |
| | | defer h.mtxWorker.Unlock() |
| | | var ret []bhomebus.Mesg |
| | | if n := h.sockWorker.sock.SendandrecvTimeout(rNodes, data,&ret, h.conf.sendTimeOut);n == 0 { |
| | | if len(ret) > 0 { |
| | | var cr *CommonReply |
| | | if err = json.Unmarshal(ret[0].Data, cr); err == nil { |
| | | return cr, nil |
| | | } |
| | | } |
| | | } |
| | | return nil, fmt.Errorf("request center err") |
| | | } |
| | | |
| | | |
| | | //向主题通道中发布消息 |
| | | func (h *BHBus) Pub(nodes []bhomebus.NetNode, msg *MsgInfo) error { |
| | | data,err := json.Marshal(*msg) |