使用CommonReply解析Register返回的结果
| | |
| | | n := regSock.Sendandrecv(regAddr, msg, &rMsg) //n代表成功发送的节点的个数 |
| | | handle.printLog("regSock.Sendandrecv n:", n, "len(rMsg):", len(rMsg)) |
| | | if n == 1 && len(rMsg) == 1 { |
| | | var rr RegisterReply |
| | | if err = json.Unmarshal(rMsg[0].Data, &rr);err != nil { |
| | | var cr CommonReply |
| | | if err = json.Unmarshal(rMsg[0].Data, &cr);err != nil { |
| | | handle.printLog("unmarshal regReply err:", err) |
| | | return nil, errors.New("unmarshal regReply err:"+err.Error()) |
| | | } else { |
| | | regR = &rr |
| | | break loop |
| | | if cr.Status == REPLY_SUCCESS { |
| | | var rr RegisterReply |
| | | if err = json.Unmarshal(cr.Body, &rr);err ==nil { |
| | | regR = &rr |
| | | break loop |
| | | } else { |
| | | handle.printLog("unmarshal RegisterReply err:", err) |
| | | } |
| | | |
| | | } else { |
| | | handle.printLog("cr.Status:", cr.Status, "Desc:", cr.Desc) |
| | | } |
| | | |
| | | } |
| | | } else { |
| | | time.Sleep(100 * time.Millisecond) |