webrtc服务器janus通信方法学习二

官方链接:https://janus.conf.meetecho.com/docs/rest.html

网关部署了一个客户端可以利用的接口。这个janus.js库以透明的方式使用它,其中与之交流的接口都封装好了,也可以自己使用其他方式进行通信,我不使用js接口与之通信,我使用window socket进行,下面描述了API暴露的接口和协议,使用。

1.The gateway root (/janus by default, but configurable), 发送POST 来使用网关创建一个线程;
2.The session endpoint (e.g., /janus/12345678, using the identifier retrieved with a previous create), 使用GET 或者 POST 来创建插件句柄,例如创建echotest

3.The plugin handle endpoint (e.g., /janus/12345678/98765432, appending the handle identifier to the session one) 发送GET,收到POST信息。

交流信息包括两个信息:
1. janus: the request/event (e.g., “create”, “attach”, “message”, etc.);
2.transaction: 与插件进行交流信息。

创建新的线程,

发送POST t”create” JSON命令。

{
        "janus" : "create",
        "transaction" : "<random alphanumeric string>"
}

成功响应:
{
        "janus" : "success",
        "transaction" : "<same as the request>",
        "data" : {
                "id" : <unique integer session ID>
        }
}

发送:
var transaction = Janus.randomString(12);
var request = { “janus”: “create”, “transaction”: transaction };
响应:
这里写图片描述
Object { janus: “success”, transaction: “1Q26Ir6XRzNa”, data: {…} } janus.js:819:5

创建插件句柄

createHandle

发送:
var transaction = Janus.randomString(12);
var request = { “janus”: “attach”, “plugin”: plugin, “opaque_id”: opaqueId, “transaction”: transaction };

成功响应:

Object { janus: “success”, session_id: 8374001098332022, transaction: “MXRbvzbKlhH5”, data: {…} } janus.js:1076:5

这里写图片描述

与插件通信

发送:

这里写图片描述

收到成功响应:
这里写图片描述

插值经过自己的处理反馈回应:
通过Long-poll requests 插件主动对客户端通信
{
“janus” : “event”,
“sender” : 1815153248,
“transaction” : “sBJNyUhH6Vc6”,
“plugindata” : {
“plugin”: “janus.plugin.echotest”,
“data” : {
“echotest” : “event”,
“result” : “ok”
}
},
}
这里写图片描述

WebSockets

要使用WebSockets与Janus交互,你必须指定一个特定的子协议,命名为janus-protocol例如

var websocket = new WebSocket('ws://1.2.3.4:8188''janus-protocol');

正如本节开头所预期的那样,交换的实际消息完全相同。这意味着之前介绍的所有概念仍然适用:您仍然创建会话,附加到插件并以完全相同的方式与其交互。当然,不同的是当使用WebSocket作为控制通道时,REST路径方法变得不可用。为了解决使用WebSocket失踪的标识符,您需要在需要时为请求添加额外的字段。

因此,当您想使用REST API创建会话时,您需要向网关基本路径发送POST:

{
        "janus" : "create",
        "transaction" : "<random alphanumeric string>"
}

猜你喜欢

转载自blog.csdn.net/bvngh3247/article/details/80858593