# TPro客户端进化版


这个客户端是在TPro客户端接口上进行了二次封装，主要增加以下功能:

1.可以通过写json的方式编写接口请求。

2.在命令行中输入ProtoId快速发起请求。

3.可以在一个连接内通过修改json文件来动态模拟不同的请求。



## 使用方式
1.先将proto的生成文件转移到这个客户端下

2.在main.go中的init函数里注册proto请求和响应结构体指针(如果有需要还可以编写特定protoId的回调函数)

```golang
func init() {
	cmd.InitClient("127.0.0.1:8081", "这里填roleId")
    	//这里填你的请求参数路径
    	config.InitConfig("request", "/tpro-client")
    	//在这里可以根据protoId自定义回调函数,可以用来查看推送消息
    	cmd.TproClient.RegisterCallBack(10086, func(bytes []byte) {
    		fmt.Println(bytes)
    	})

	//这里注册protoId，请求和响应结构体指针
	config.RegisterProto(10086, &proto.StageProcessRequest{}, &proto.StageProcessResponse{})
	config.RegisterProto(10000, &proto.RoleBaseLoginRequest{}, &proto.RoleBaseLoginResponse{})
}
```

3.编写json文件,其中key为protoId，value为请求参数，```特别注意```value里的请求key要和proto结构体的json标签对应。
```json
{
  "10086":{
  },
  "10000": {
    "app_key": "blablabla",
    "rule_version": 1
  }
}
```
## 动态修改json文件模拟不同请求

客户端开启后可以根据命令提示，输入已经注册了的protoId，从而模拟长连接下的不同请求，在此期间，你可以直接修改json文件（```注意ctrl-s保存json文件```），而无需再次启动客户端。

输入-1主动主动连接。

## 快速导入proto文件的方法

拉下本项目后可以自行添加proto文件
```
git submodule add [存放proto文件的库地址]
```

之后需要更新可以直接通过命令
```
git submodule update
```
