liuxiaolong
2021-01-07 c14c59a2d04ee10f47c28fa9058a961cd07aacdd
sbusClient doReq从[]Mesg中先解出MsgInfo
2个文件已修改
23 ■■■■ 已修改文件
appApi.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sbusClient.go 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appApi.go
@@ -20,7 +20,7 @@
    paramMap := make(map[string]string, 0)
    paramMap["appName"] = appName
    respBody, err := client.DoGetRequest(url, paramMap, nil)
    logPrint("respBody:", respBody, "err:", err)
    logPrint("DoGetRequest err:", err)
    if err !=nil {
        return nil
    }
sbusClient.go
@@ -12,9 +12,17 @@
    nodes []bhomebus.NetNode
}
type ProcInfo struct {
    Name             string                 `json:"name"` // 进程名称
    ID               string                 `json:"id"`   // 进程唯一标识
    Info             string                 `json:"info"` // 进程的描述信息,用于区分同一进程名称下多个进程
}
type MsgInfo struct {
    SrcProc          ProcInfo               `json:"srcProc"`        // 源进程基本信息
    MsgType           string                 `json:"msgType"`        // 数据类型,可为请求、发布、订阅、应答等
    Topic             string                `json:"topic"`            //请求主题
    Body             []byte                `json:"body"`            //请求内容
    Body             []byte                `json:"body"`            //请求内容或者反馈结果
}
type request struct {
@@ -154,10 +162,17 @@
    defer s.Close()
    var ret []bhomebus.Mesg
    if n := s.SendandrecvTimeout(nodes, data, &ret, 5000);n == 0 {  //n==0表示没有请求成功
        return nil, fmt.Errorf("s.SendandrecvTimeout result n:%d", n)
        return nil, fmt.Errorf("doReq s.SendandrecvTimeout result n:%d", n)
    } else {
        logPrint("doReq SendandrecvTimeout n:", n)
        if len(ret) > 0 {
            return ret[0].Data, nil
            var retMsg MsgInfo
            err = json.Unmarshal(ret[0].Data, &retMsg)
            if err != nil {
                logPrint("doReq unmarshal to MsgInfo err:", err)
                return nil, err
            }
            return retMsg.Body, nil
        }
        return nil, fmt.Errorf("no any response")
    }