中控API协议介绍

中控API协议:对接Rooms中控API使用Websocket的连接方式,基于json rpc 2.0协议
端口号:Rooms的中控API端口号为 6295
鉴权:使用protocol header进行校验,需要将密码先使用BASE64进行编码,然后urlencode的方式进行编码
Syntax:
Sec-WebSocket-Protocol: auth-credentials

JavaScript example

var websocket = new WebSocket(wsUri, 'auth-' + encodeURIComponent(btoa("your password")));

数据返回方式

1. 中控API有同步和异步两种返回方式:
2. 同步返回则是在调用接口后立即收到一个Response;
3. 异步则是在方法调用后,会同步收到一个响应的Response,但其真正的数据会通过Event的方式返回,需要先订阅所属模块,才能收到异步回调

事件订阅(Event异步通知)

支持订阅/取消订阅异步回调:
1. 支持订阅/取消订阅所有事件
2. 支持订阅/取消订阅根节点模块
3. 支持订阅/取消订阅子节点模块

协议固定参数说明

查询接口信息(Query)

Query 结构

Query接口使用统一规范,通过Path来决定获取树形结构的哪一个节点,根据Path来决定返回那个节点的Json结构。

request

{
    "jsonrpc": "2.0", // 协议版本
    "id": "xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "method": "Query", // 方法为Query,查询接口固定参数
    "params": {
        "path": ["xxx"] // 查询的模块路径
    }
}

response

{
    "jsonrpc":"2.0", // 协议版本
    "method":"Query", // 方法为Query,查询接口固定参数
    "id":"xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "result":{
        "error_code":0, // 错误码,详见 5 错误码定义
        "message":"xxx", // 附带的消息
        "data":{ // 查询接口的数据
        }
    }
}

功能接口调用(Call)

request

{
    "jsonrpc": "2.0", // 协议版本
    "id": "xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "method": "Call/xxx", // 请求的模块
    "params":{
       "action": "xxx", // 请求的具体接口名
       "action_params": { // 请求的接口需要提供的参数
       }
    }
}

response

{
    "jsonrpc": "2.0" // 协议版本
    "id": "xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "method": "Call/xxx", // 请求的模块
    "result": {
        "error_code": 0, // 错误码,详见 5 错误码定义
        "action": "xxx", // 请求的具体接口名
        "message": "" // 附带的消息
    }
}

事件订阅(Event)

(1)订阅/取消订阅所有模块

request

{
    "jsonrpc":"2.0", // 协议版本
    "id":"xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "method":"Subscribe", //  "method":"UnSubscribe" // 订阅/取消订阅的模块
}

response

{
    "jsonrpc": "2.0", // 协议版本
    "id":"xxx", // 用于唯一标识本次 websocket 请求,生成规则保证全局唯一,由调用方生成并维护
    "method":"Subscribe"  / "UnSubscribe", // 订阅/取消订阅的模块
    "result":{
    "error_code":0, // 错误码,详见 5 错误码定义
        "message":"", // 附带的消息
    }
}

(2)订阅/取消订阅根节点

request

{
    "jsonrpc":"2.0",
    "id":"xxx",
    "method":"Subscribe/Meeting", //  "method":"UnSubscribe/Meeting
}

response

{
    "jsonrpc": "2.0",
    "id":"xxx",
    "method":"Subscribe/Meeting"  / "UnSubscribe/Meeting",
    "result":{
    "error_code":0,
        "message":""
    }
}

(3)订阅/取消订阅子节点

request

{
    "jsonrpc":"2.0",
    "id":"xxx",
    "method":"Subscribe/Dialog/Alert", //  "method":"UnSubscribe/Dialog/Alert"
}

response

{
    "jsonrpc": "2.0",
    "id":"xxx",
    "method":"Subscribe/Dialog/Alert"  / "UnSubscribe/Dialog/Alert",
    "result":{
    "error_code":0,
        "message":""
    }
}

下载 中控API协议.pdf
文章内容是否对您有帮助?
有帮助
无帮助