基于Valve的Rcon、A2s_player、A2s_Info的查询接口
- 移除原先的json-lib库,使用Springboot自带的jackson代替
- 移除原先的 spring-boot-starter-log4j 日志库,加入lombok,使用注解的方式输出日志
- 优化返回字段,现在所有成功请求结果都会输出在同一个字段
- 优化原先的异常处理机制,使用 ControllerAdvice ExceptionHandler进行全局异常处理
- 基于Spring boot创建,使用UDP、TCP进行服务器数据传输,并对返回数据进行编码
- Rcon库协议基于rconed发展而来,修复了大部分错误,以及修复了对中文不兼容的问题
- 项目基于JDK1.8,请下载JDK1.8及以上版本运行,运行命令:
java -jar valveapi-0.0.1-SNAPSHOT.jar --server.port=9090
其中,-jar 后面的参数为项目jar文件,9090为web服务端口号 注意:若Windows运行出现乱码,请在启动项前加入-Dfile.encoding=utf-8参数,例
java -Dfile.encoding=utf-8 -jar valveapi-0.0.1-SNAPSHOT.jar --server.port=9090
- API访问仅支持Post JSON格式数据访问,并且Content-type头必须为application/json;charset=UTF-8,下面为使用范例:
-
- RCON命令:
-
-
- 请求url为 http://localhost:9090/rcon, post JSON数据为:
{"ip":"服务器ip地址:服务器端口号","cmd":"say 啊啊啊","passwd":"服务器RCON密码"}
- 请求url为 http://localhost:9090/rcon, post JSON数据为:
-
-
-
- 返回JSON数据为:
-
{
"success": true,
"data": "Console: 啊啊啊\n",
"msg":""
}
-
-
- success代表执行正常,msg为rcon执行返回数据
-
-
-
- 注意:某些命令下,RCON的返回数据为空的时候,success标志为false
-
-
- A2s_Info:
-
-
- 请求url为 http://localhost:8080/servers, post JSON数据为:
{"ip":"服务器ip地址:服务器端口号"}
- 请求url为 http://localhost:8080/servers, post JSON数据为:
-
-
-
- 返回JSON数据为:
-
{
"success": true,
"msg": "",
"data": {
"name": "XXXXXXXXX",
"map": "c5m1_waterfront",
"players": "0/14",
"time": "21ms",
"visibility": "public"
}
}
-
-
- A2s_info命令为获取服务器当前信息,返回值为嵌套json数据,name为服务器名称,map为当前地图,players为当前人数/Max人数,time为访问延迟,visibility代表服务器是否需要密码进入(private或者public)
-
-
- A2s_players:
-
-
- 请求url为 http://localhost:9090/players, post JSON数据为:
{"ip":"服务器ip地址:服务器端口号"}
- 请求url为 http://localhost:9090/players, post JSON数据为:
-
-
-
- 返回JSON数据为:
-
{
"success": true,
"msg": "",
"data": [
{
"index": 0,
"name": "XXXX",
"score": 0,
"time": "45875.816"
},
{
"index": 0,
"name": "XXXXXX",
"score": 9,
"time": "44703.492"
}
]}
-
-
- A2S_player为获取服务器当前人数信息,返回值仍然为嵌套json数据,jsonarray为json数组,每一个json对象为一个玩家对象
-
-
-
- index为玩家索引(暂时无效)
-
-
-
- name为玩家姓名
-
-
-
- score为玩家当前得分
-
-
-
- time为玩家在线时长,单位秒
-