licode从客户端到连上信令服务器流程

var config = {audio: true,
video: true,
data: true,
screen: screen,
videoSize: [640, 480, 640, 480],
videoFrameRate: [10, 15]
};
localStream = Erizo.Stream(config);

今天在使用nodejs的request时发生了一个错误,
对方网站的证书设置的不正确导致本地请求不能返回数据;
解决方案是在配置request时加入一个忽略证书验证得字段
rejectUnauthorized:false

ErizoClient中的room.connect调用Socket.js中的connect函数中调用下面的代码:
// First message with the token
that.sendMessage('token', token, (response) => {
that.state = that.CONNECTED;
that.id = response.clientId;
callback(response);
}, error);

NUVE_KEY在配置文件中 token.tokenId+','+token.host进行sha1计算再base64编码.


1、3004端口的index.html中的script.js中调用/createToken/参数是roomData
var roomData = {username: userName,
version: 'v1.0.0',
platform: 'win',
role: 'presenter',
room: roomName,
type: roomType,
meta: 'chrome',
mediaConfiguration: mediaConfiguration};
1.2 使用nuve Client的接口来创建token,发送rooms/:room/tokens信令到3000端口。
1.3 nuve Server监听3000端口,接收创建token命令。
1.4 为当前房间分配一个erizoController
1.5 将token(内含roomData和erizoController IP)保存到mongodb.

2、使用/createToken的返回值来创建room
{"tokenId":"5c9058acc5271",
"host":"controller-rtc.com:80",
"secure":true,
"signature":"NzJmQ1MDMxzOGMwYjhjNw=="
}
room = Erizo.Room({token: token});

0、nuve启动后会连到rabbit,监听来自rpcExchange队列nuve中的消息。

3、erizoController启动后会连接到rabbit,监听来自rpcExchange队列clientQueue中的消息(队列名随机)
3.1 erizoController Server收到第二步创建的token后,先检查,再nuve Client RPC调用deleteToken,
3.2 NuveProxy.js中定义调用callRpc,指定了消息发到哪个队列中。
new Promise((resolve, reject)
调用的地方: then后的方法即resolve,reject方法如果没有,那么catch内的代码即reject。
3.3 amqper.js中exports.callRpc,里面设置了回收消息的队列名。

posted @ 2019-03-19 15:42  zxpo  阅读(580)  评论(0编辑  收藏  举报