介绍¶
客户端 API 用于 LinkRTC 后台与具有 WebRTC 功能的浏览器/客户端之间的通信。
它们之间的通信基于 WebSocket ,遵照 JSON-RPC 2.0 标准。
在浏览器上,开发者可以通过 JavaScript 脚本使用这些 API 。
LinkRTC 与 浏览器/客户端 既充当调用者,用充当被调用者 ,所以,它们之间的通信是双向的。
设计原则¶
格式规范¶
URL¶
WebRTC 客户端访问这个 URL 建立 WebSocket 连接:
-
GET
/v0.1/capi/
(str: project_id)¶ ID 为 project_id 的项目的 WebRTC 客户端建立基于 WebSocket 的 JSON-RPC 连接。
Query Parameters: - key (str) – 客户端连接密钥。
用户应用程序服务器通过 WebRTC 客户端对象
sapi.WebRtcClient.wskey
属性获取该密钥。
- key (str) – 客户端连接密钥。
用户应用程序服务器通过 WebRTC 客户端对象
注解
- 路径的第一部分 v0.1 是 LinkRTC API 的版本,跨版本访问可能有兼容问题。
- capi 表示客户端程序接口( Client Application Program Interface )。
举例
在浏览器上使用 JavaScript 建立 WebSocket 连接:
var projId = "your_project_sid";
var wsKey = "your_client_wskey";
var url = `wss://api.linkrtc.com/v0.1/capi/${projId}?key=${wsKey}`;
var wsRpc = new WebSocket(url);
/**
* RPC's response
*/
wsRpc.addEventListener('onmessage', (event) => {
var data = JSON.parse(event.data);
/// "id" is RPC's id
id = data.id;
/// "result" is RPC's returned result
result = data.result;
});
wsRpc.addEventListener("readyState", (state) => {
if (state == 0) {
console.log("CONNECTING");
} else if (state == 1) {
console.log("OPEN");
/**
* Send JSON-RPC
*/
wsRpc.send(JSON.stringify({
jsonrpc: '2.0',
id: 'Unique-RPC-ID',
method: 'name_of_method',
params: ['param0', 'param1', 'param2', 'param3'],
}))
} else if (state == 2) {
console.log("CLOSING");
} else if (state == 3) {
console.log("CLOSED");
}
});