Esempio n. 1
0
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)
	}
}
Esempio n. 2
0
// 激活服务器(服务器启动时主动调用)
// 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)
}
Esempio n. 3
0
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)
	}
}