EXLIVE平台GServer实时接口(JSON)
0.接口说明
GServer实时接口(JSON)说明:
本规范规定了直接接入EXLIVE平台GServer应用服务器的接口定义,采用TCP通讯方式,实现了用户登录、权限验证、各种数据传输等功能。
本规范主要用来实现第三方软件和GServer服务器实时互通,采用TCP传输方式,端口为1502,数据格式使用json格式。
数据分为数据头(header)和数据体(body)两个部分。
数据头(header)部分格式为:
"header":
{
"cmd":"1000"
}
格式主要包含一个命令字(cmd)属性,程序根据命令字来区分数据体的内容。数据体(body)部分包含的数据会根据数据头中的命令字(cmd)而异。
应用一:
第三方平台数据转入EXLIVE平台步骤:
>> 获取一个EXLIVE平台帐号
>> 以TCP方式登录EXLIVE平台1502端口,参考用户登录命令1000
>> 等待exlive平台登录返回成功,如果返回结果不是success服务器将掐断TCP连接
>> 收到成功后,第三方平台需要间隔30秒发送心跳消息,参看客户端心跳 1002
>> 连接成功后,第三方平台可以按照 车辆定位数据 1007 格式上传车辆数据
>> 第三方平台退出连接可以发送 用户退出 1001命令,然后断开TCP连接
应用二:
自己开发客户端接入EXLIVE平台GServer服务器步骤:
>> 获取一个EXLIVE平台帐号
>> 以TCP方式登录EXLIVE平台1502端口,参考用户登录命令1000
>> 等待exlive平台登录返回成功,如果返回结果不是success服务器将掐断TCP连接
>> 收到成功后,第三方平台需要间隔30秒发送心跳消息,参看客户端心跳 1002
>>请求下发用户下客户和分组数据 1008
>>请求下发每个分组下的车辆数据 1010
>> 服务器向客户端转发车辆的实时定位数据 1007
>>客户端向车载终端下发车机命令 1003
>> 客户端退出连接,发送退出命令 1001,然后断开TCP连接
1.用户从客户端登录GServer服务器
数据发送方向:client —> server
命令字:1000
参数
参数 | 类型 | 说明 |
---|---|---|
name | String | 用户名称 |
pass | String | 用户密码 |
ver | String | 客户端版本,如 4.6936 |
type | String | 客户端类型 json_common |
mode | String | 备用,填空 |
格式:
{
"header":
{
"cmd":"1000"
},
"body":
{
"name":"exlive",
"pass":"000000",
"ver":"",
"type":"",
"mode":""
}
}
2.服务器对客户端发送命令返回的通用应答
数据发送方向:server —> client
命令字:8000
参数:
参数 | 类型 | 说明 |
---|---|---|
cmd | String | 服务器接收到的命令字 |
result | String | 结果success 成功 failed失败 |
格式:
{
"header":
{
"cmd":"8000"
},
"body":
{
"cmd":"1000",
"result":"success"
}
}
3.用户从客户端退出/注销登录
数据发送方向:client —> server
命令字:1001
参数:
参数 | 类型 | 说明 |
---|---|---|
data | String | 空 |
格式:
{
"header":
{
"cmd":"1001"
},
"body":
{
"data":""
}
}
4.客户端向服务器发送心跳消息
数据发送方向:client —> server
命令字:1002
客户端登录成功后,需要按照30秒间隔向服务器发送心跳消息,如果3分钟没有收到客户端发送的心跳消息,服务器端将主动断开客户端的连接
参数:
参数 | 类型 | 说明 |
---|---|---|
result | String | 空 |
格式:
{
"header":
{
"cmd":"1002"
},
"body":
{
"result":""
}
}
5.服务器向客户端发送通知消息
数据发送方向:client <—> server
命令字:1003
参数:
参数 | 类型 | 说明 |
---|---|---|
msg | String | 消息内容 |
格式:
{
"header":
{
"cmd":"1003"
},
"body":
{
"msg":""
}
}
6.客户端向车载终端发送车机命令
数据发送方向:client —> server
命令字:1003
参数:
参数 | 类型 | 说明 |
---|---|---|
msg | String | 命令格式 |
命令格式为:
<cmd>
<id>
7000
</id>
<param>
180
</param>
<param>
10
</param>
</cmd> 参考cmd.xml文件
格式:
{
"header":
{
"cmd":"1003"
},
"body":
{
"msg":""
}
}
7.服务器向客户端转发车辆实时定位数据
数据发送方向:server —> client
命令字:1007
参数:
参数 | 类型 | 说明 |
---|---|---|
code | String | 车牌号码 |
id | String | 车辆ID |
lat | String | 纬度 |
lng | String | 经度 |
veo | String | 速度 |
dir | String | 方向 |
gpstime | String | 格式为:2011-11-01 12:38:39 |
av | String | 表示是否为有效定位, 0 无效定位, 1有效定位 |
alarm | String | 是否报警, 0 无报警, 1 报警 |
oil | String | 当前油量 |
dis | String | 当前总里程 |
wstate | String | 整数类型状态 |
cstate | String | 状态描述,可以为空 |
posinfo | String | 位置描述,可以为空 |
格式:
{
"header":
{
"cmd":"1007"
},
"body":
{
"code":"",
"id":"",
"lat":"",
"lng":"",
"veo":"",
"dir":"",
"gpstime":"",
"av":"",
"alarm":"",
"oil":"",
"dis":"",
"wstate":"",
"cstate":"",
"posinfo":""
}
}
8.客户端请求服务器下发用户权限下客户及分组数据
数据发送方向:client —> server
命令字:1008
参数:
参数 | 类型 | 说明 |
---|---|---|
client | String | true 下发客户关系数据,false 不下发 |
格式:
{
"header":
{
"cmd":"1008"
},
"body":
{
"client":"true"
}
}
9.服务器向客户端下发用户的客户、分组数据
数据发送方向:client —> server
命令字:1009
参数:
参数 | 类型 | 说明 |
---|---|---|
groupid | String | 车辆分组的ID |
relation | String | 用户的客户 |
customer | String | 分组的客户 |
groupname | String | 分组名称 |
格式:
{
"header":
{
"cmd":"1009"
},
"body":
{
"groupid":"",
"relation":"",
"customer":"",
"groupname":""
}
}
10.客户端请求服务器下发用户权限下分组的车辆数据
数据发送方向:client —> server
命令字:1010
参数:
参数 | 类型 | 说明 |
---|---|---|
groupid | String | 车辆分组ID |
格式:
{
"header":
{
"cmd":"1010"
},
"body":
{
"groupid":"1"
}
}
11.服务器向客户端下发用户权限下指定分组的车辆静态数据
数据发送方向:server —> client
命令字:1011
参数:
参数 | 类型 | 说明 |
---|---|---|
id | String | 车辆ID |
code | String | 车牌号码 |
sim | String | SIM卡号码 |
terminalid | String | 终端设备ID |
groupname | String | 车辆所属分组名称 |
vhctype | String | 车辆类型 |
mobiletype | String | 终端设备类型 |
格式:
{
"header":
{
"cmd":"1011"
},
"body":
{
"id":"",
"code":"",
"sim":"",
"terminalid":"",
"groupname":"",
"vhctype":"",
"mobiletype":""
}
}