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":""
           }
          }  








