搜索
您的当前位置:首页客户端-Proxy 交互协议

客户端-Proxy 交互协议

来源:世旅网
一、 通信协议

客户端和服务端采用WebSocket 长连接。采用JSON-RPC 2.0协议进行消息推送。

连接建立

由客户端发起连接

连接地址 ws://…./…?token=1234567890abcdef,

服务端从连接地址Query String中的 token 参数识别客户端身份

连接结束

1. WebSocket 断开

2. 心跳发起方在发起下一次心跳前没有收到上一次心跳的响应,则断开连接 3. 心跳接收方超过时限没有收到心跳包则断开连接

JSON-RPC简介

JSON-RPC是一种基于JSON的跨语言远程调用协议。有文本传输数据小,便于调试扩展的特点。

1. 请求

JSON-RPC非常简单,在请求时向服务器传输数据格式如下 {

\"jsonrpc\" : \"2.0\

\"method\" : \"sayHello\

\"params\" : [\"Hello JSON-RPC\"], \"id\" : 1 }

jsonrpc:定义JSON-RPC版本。  method:调用的方法名。

 params:方法传入的参数,若无参数则为null。

 id:调用标识符。可以为字符串,不推荐包含小数(不能准确二进制化),或为null(可能引起混乱)。

2. 响应

服务器返回的数据格式也为JSON,其格式如下: {

\"jsonrpc\" : \"2.0\

\"result\" : \"Hell JSON-RPC\\"error\" : null, \"id\" : 1 }

jsonrpc:定义JSON-RPC版本。  result:方法返回值,调用成功时,不能为null,调用错误时,必须为null。  error:调用时错误,无错误返回null,有错误时则返回一个错误对象。  id:调用标识符,与调用方传入的标识一致,当请求中的id检查发生错误时(转换错误/无效请求),则必须返回null。

3. 错误

3.1. 错误对象

{

\"code\" : 1,

\"message\" : \"Nothing found\\"data\":null }

code:一个表示错误类型的数字。  message:错误描述。

 data:附加信息,可为null。

3.2. 错误码

错误码-32768到-32000作为预定义错误的保留值,该范围内的任何未定义代码为未来保留使用。

代码 -32700 -32600 错误 解析错误 含义 服务器接收到无效的JSON;服务器解析JSON文本发生错误。 无效的请求 发送的JSON不是一个有效的请求。 代码 -32601 -36602 -36603 -32000到-32099

错误 无效的参数 无效的方法参数。 内部错误 JSON-RPC内部错误。 含义 方法未找到 方法不存在或不可见。 服务器端错保留给具体实现服务器端错误。 误 二、 p2p穿透

客户端发起

method: p2p_info params:

参数名称 proxy_id token client_ver

是否必须 数据类型 默认值 True True True String String String 描述 代理ID,如:0000002562 网页鉴权值,一串字符 客户端版本号

响应

成功返回 result:

参数名称 p2p_user 是否必须 数据类型 默认值 True String 描述 P2P用户名 turn_ip turn_port sms_local_port True True True String Int String P2P服务器IP P2P服务器端口 本地SMS服务器端口

失败返回 error:

参数名称 code message data 是否必须 数据类型 默认值 True True True Int String Int 描述 错误码 错误描述 附加信息 NULL

三、 开始视频流

客户端发起

method: start_video params:

参数名称 token client_ver sms_ip sms_port device_id stream_type

是否必须 数据类型 默认值 True True True True True True String String String Int String Int 描述 网页鉴权值,一串字符 客户端版本号 SMS 服务器 IP SMS 服务器端口 摄像头设备号 码流类型,0.主码流,1.子码流

响应

成功返回 result:

参数名称 sms_stream_id

是否必须 数据类型 默认值 True String 描述 SMS登录ID 失败返回 error:

参数名称 code message data

是否必须 数据类型 默认值 True True True Int String Int 描述 错误码 错误描述 附加信息 NULL 四、 获取球机信息

服务端发起

method:ball_info params:

参数名称 token client_ver device_id

是否必须 数据类型 默认值 True True True String String String 描述 网页鉴权值,一串字符 客户端版本号 摄像头设备号

响应

成功返回 result:

sucess devType ptz p t z

True True True True True True bool int Object int int int 是否成功 0表示海康,1表示大华 ptz坐标 水平坐标 垂直坐标 变倍参数 失败返回 error:

参数名称 code message data

是否必须 数据类型 默认值 True True True Int String Int 描述 错误码 错误描述 附加信息 NULL 五、 球机控制

服务端发起

method:ball_control params:

参数名称 token client_ver device_id ptz p t z

是否必须 数据类型 默认值 True True True True True True True String String String Object int int int 描述 网页鉴权值,一串字符 客户端版本号 摄像头设备号 ptz坐标 水平坐标 垂直坐标 变倍参数

响应

成功返回 result:

sucess devType ptz p t z

True True True True True True bool int Object int int int 操作是否成功 0表示海康,1表示大华 ptz坐标 水平坐标 垂直坐标 变倍参数 失败返回 error:

参数名称 code message data

是否必须 数据类型 默认值 True True True Int String Int 描述 错误码 错误描述 附加信息 NULL

因篇幅问题不能全部显示,请点此查看更多更全内容

Top