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,里面设置了回收消息的队列名。

licode从客户端到连上信令服务器流程的更多相关文章

  1. Lodop不要把客户端的打印机共享到服务器上 再在客户端打印

    客户端打印需要每个客户端都安装,Lodop插件方式和C-Lodop方式,都是安装一次后,无需再次安装,c-lodop默认也是开机自启动的.集中打印方式,可以打印到某台电脑(作为云主机)上,但是不能打印 ...

  2. 在C#客户端用HTTP上传文件到Java服务器

    在C#客户端用HTTP上传文件到Java服务器  来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...

  3. 一步一步搭建客服系统 (2) 如何搭建SimpleWebRTC信令服务器

    上次介绍了<3分钟实现网页版多人文本.视频聊天室 (含完整源码)>使用的是default 信令服务器,只是为了方便快速开始而已.SimapleWebRTC官方文档里第一条就讲到,不要在生产 ...

  4. webrtc 实时视频 .net websocket信令服务器

    这篇文章主要参考了 Webrtc WebSocket实现音视频通讯,非常感谢提供代码 前端部分完全是从这篇文章复制过来的,只是修改了webscket的url,还有加入了webrtc-adapterjs ...

  5. 如何搭建WebRTC信令服务器

    WebRTC 有一整套规范,如怎样使用它的接口.使用SDP进行媒体协商.通过ICE收集地址并进行连通性检测等等.除此之外,WebRTC还需要房间服务器将多端聚集到一起管理,以及信令服务器进行信令数据交 ...

  6. Linux 本地文件或文件夹上传服务器

    Linux 本地文件或文件夹上传服务器 一.权限设置 本地文件或文件夹上传服务器,你首先需要获取到root权限: 二.上传方式 上传方式有两种 : 1.通过 FTP 客户端上传文件或文件夹: 2.通过 ...

  7. HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法

    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...

  8. SQLServer 2005客户端远程连接sql2008 数据库服务器

    SQL2005客户端远程连接sql2008 数据库服务器 by:授客 QQ:1033553122 准备工作: 客户端所在pc机配置: 配置数据源 控制面板-管理工具-ODBC数据源-系统DSN-添加- ...

  9. node中一个基本的HTTP客户端向本地的HTTP服务器发送数据

    上一篇讲到了node可以轻松的向其他请求数据. 这一篇就来讲讲向本地服务器的数据交互. HTTP服务器代码,s.js var http=require("http"); var s ...

随机推荐

  1. Day10 - Python异步IO、Pymysql、paramiko、

    IO多路复用: 参考博客:http://www.cnblogs.com/wupeiqi/p/6536518.html   socket客户端(爬虫): http://www.cnblogs.com/w ...

  2. 【Raspberry Pi】 小问题汇总

    注: 此系列为自己之前所搭建网站内容. 目前入手树莓派2,将遇到的一些琐碎的问题记录在此. 1. 更改时区 查看日期命令:date 输入sudo dpkg-reconfigure tzdata后按提示 ...

  3. python进行linux系统监控

      python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...

  4. 连接GitHub的方法

    连接到GitHub 首先在本地创建 ssh key: ssh-keygen -t rsa -C "your_email@youremail.com" 后面的 your_email@ ...

  5. Poj 2955 brackets(区间dp)

    Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7795   Accepted: 4136 Descript ...

  6. Springboot项目搭配ELK日志平台

    上一篇讲过了elasticsearch和kibana的可视化组合查询,这一篇就来看看大名鼎鼎的ELK日志平台是如何搞定的. elasticsearch负责数据的存储和检索,kibana提供图形界面便于 ...

  7. [置顶] 如何用PYTHON代码写出音乐

    如何用PYTHON代码写出音乐 什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深 ...

  8. 一张图说明HTTPS 握手过程

  9. 深度学习(六十七)metal forge深度学习库使用

    1.设置输入: let input = Input() 或者 let input = Input(width: 100, height: 100, channels: 3) 2.创建网络: let o ...

  10. asp.net Npoi 使用

    HSSFWorkbook hssfworkbook = new HSSFWorkbook(); //增加 ExcelNPOI.SS.UserModel.ISheet SheetName = hssfw ...