func handleClientContent(clientObj *Client) { validMessageList := make([]string, 0) for { content, ok := clientObj.GetValieMessage() if !ok { break } // 处理数据,如果长度为0则表示心跳包 if len(content) == 0 { continue } else { atomic.AddInt64(&totalSize, int64(len(content))) // 先进行解压缩 content, err := zlibUtil.Decompress(content) if err != nil { logUtil.Log(fmt.Sprintf("zlib解压缩错误,错误信息为:%s", err), logUtil.Error, true) break } validMessageList = append(validMessageList, string(content)) } } // 添加数据 if len(validMessageList) > 0 { data.AddData(validMessageList) } }
// 激活服务器(服务器启动时主动调用) // manageCenterUrl:远程的激活Url // serverGroupId:服务器组Id // 返回值: // 错误对象 func ActivateServer(manageCenterUrl string, serverGroupId int) error { // 定义请求参数 postDict := make(map[string]string) postDict["ServerGroupID"] = strconv.Itoa(serverGroupId) // 连接服务器,以激活数据 returnBytes, err := webUtil.PostWebData(manageCenterUrl, postDict, nil) if err != nil { return fmt.Errorf("请求ManageCenter错误,错误信息为:%s", err) } // 进行zlib解压缩 returnBytes, err = zlibUtil.Decompress(returnBytes) if err != nil { return fmt.Errorf("zlib解压缩错误,错误信息为:%s", err) } // 将返回的数据进行反序列化 var returnObj *returnObject.ReturnObject if err = json.Unmarshal(returnBytes, &returnObj); err != nil { return fmt.Errorf("反序列化ManageCenter的结果错误,结果为:%s", string(returnBytes)) } // Code=0表示成功,否则表示失败 if returnObj.Code != 0 { return fmt.Errorf("激活服务器失败,返回值为:%s", string(returnBytes)) } // 解析得到的数据 return ParseData(serverGroupId, returnObj.Data) }
func TestPostWebData(t *testing.T) { weburl := "http://managecentertest.qyc.moqikaka.com/API/ServerActivate.ashx" postDict := make(map[string]string, 0) postDict["ServerGroupID"] = "20002" resp, err := PostWebData(weburl, postDict, nil) if err != nil { t.Errorf("测试错误,返回的结果为:%s", err) } if len(resp) == 0 { t.Errorf("返回的数据为空,期望不为空") } // 将收到的数据进行zlib解压缩 _, err = zlibUtil.Decompress(resp) if err != nil { t.Errorf("Error:%s", err) } }