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. 【Python】高阶函数介绍

    其实函数可以作为变量,之前学过C++,对于这种用法并不奇怪.无非就是函数充当变量,可以传入函数而已. 下面分别介绍 Python 中常见的高阶函数:map/reduce, filter, sorted ...

  2. 基于vue-cli,测试非父子传值时,碰到 keep-alive的神奇

    非父子传值测试 一直都很好奇非父子传值到底如何,结果入坑许久才爬出来,才知道在脚手架里测试就是坑. 问题: 测试非父子传值时,由于组件之间是通过路由进行跳转,值传过去又被刷掉 思路: 因为路由跳转,相 ...

  3. Elasticsearch 在分布式系统中深度分页问题

    理解为什么深度分页是有问题的,我们可以假设在一个有 5 个主分片的索引中搜索. 当我们请求结果的第一页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 5 ...

  4. PentesterLab-PHP Include And Post Exploitation

    一.打开页面,看到这么个页面,按照惯例随手点一点 二.Login处显然是一个后台登录页面,但前提是的有账号密码,看了下Submit这个页面,发现url中有个page参数 三.nikto跑一下这个页面. ...

  5. Python面向对象的三大特征 --- 封装、继承、多态

    一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person():   def _ ...

  6. 开源一款ftp软件——filezilla

    filezilla是一款高性能ftp/sftp文件工具,关于它的具体的介绍可参见其官网:https://www.filezilla.cn/.其原作者是Tim Kosse (tim.kosse@file ...

  7. Android使用HTTP协议访问网络——HttpClient

    套路篇 1.HttpClient是一个接口,因此无法创建它的实例,通常情况下都会创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHt ...

  8. Android常见问题——Genymotion无法启动问题

    在官网下载了Genymotion和VirturalBox的合集安装之后启动模拟器的时候发现启动不了(默认下载,啥都没干),在网上找了一些方法,也没有解决,最后偶然看到一种方法才解决的,先看一下具体的问 ...

  9. nodejs调用百度统计api摆脱人肉数据统计

    var http = require("https"); var url = require('url'); var postData = JSON.stringify( { &q ...

  10. 软件包 com.baidu.location

    http://developer.baidu.com/map/loc_refer/index.html?com/baidu/location/package-summary.html