中控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
文章内容是否对您有帮助?
有帮助
无帮助
能否告知我们这篇文章的问题?(选填)