licode需要手动启动的服务有四个,这四个服务之间通过mq相互调用和通信
nuve.js,用于业务管理服务、资源管理、数据库管理,并管理多个erizoController
模块序号 |
模块功能 |
相应文件 |
1 |
Nuve主程序入口、连接到MQ、鉴权、创建业务、监听3000 |
nuveAPI/nuve.js |
2 |
数据库增删改查操作,主要是ec、room、service和token |
nuveAPI/mdb/*.js |
3 |
EC的分配、保活 |
nuveAPI/cloudHandler.js |
4 |
用户管理、房间管理、服务管理 |
nuveAPI/resource/*.js |
5 |
和rabbit mq进行通讯 |
nuveAPI/rpc/*.js |
#!/usr/bin/env bash
set -e
SCRIPT=`pwd`/$0
FILENAME=`basename $SCRIPT`
PATHNAME=`dirname $SCRIPT`
ROOT=$PATHNAME/..
NVM_CHECK="$ROOT"/scripts/checkNvm.sh
CURRENT_DIR=`pwd`
. $NVM_CHECK
cd $PATHNAME/nuveAPI
node nuve.js &
cd $CURRENT_DIR
basicServer.js,用于获取token等
#!/usr/bin/env bash
SCRIPT=`pwd`/$0
FILENAME=`basename $SCRIPT`
PATHNAME=`dirname $SCRIPT`
ROOT=$PATHNAME/..
BUILD_DIR=$ROOT/build
CURRENT_DIR=`pwd`
NVM_CHECK="$PATHNAME"/checkNvm.sh
EXTRAS=$ROOT/extras
cp $ROOT/nuve/nuveClient/dist/nuve.js $EXTRAS/basic_example/
. $NVM_CHECK
nvm use
cd $EXTRAS/basic_example
node basicServer.js &
erizoController.js,信令服务,管理多个会议室room
模块序号 |
模块功能 |
相应文件 |
1 |
ErizoController主程序入口 |
erizo_controller/erizoController/erizoController.js |
2 |
Websocket和客户端的connection管理 |
同上 |
3 |
EA的分配、保活 |
erizo_controller/erizoController/ecCloudHandler.js |
4 |
和Nuve进行通讯 |
erizo_controller/erizoController/nuveProxy.js |
5 |
利用rabbit mq进行RPC操作 |
amqper.js |
6 |
房间管理、EaList的管理 |
erizo_controller/erizoController/roomController.js erizo_controller/erizoController/models/*.js |
#!/usr/bin/env bash
set -e
SCRIPT=`pwd`/$0
FILENAME=`basename $SCRIPT`
ROOT=`dirname $SCRIPT`
LICODE_ROOT="$ROOT"/..
CURRENT_DIR=`pwd`
NVM_CHECK="$LICODE_ROOT"/scripts/checkNvm.sh
. $NVM_CHECK
cd $ROOT/erizoController
nvm use
node erizoController.js &
cd $CURRENT_DIR
erizoAgent.js,媒体服务,管理多个ErizoJS
模块序号 |
模块功能 |
相应文件 |
1 |
ErizoAgent主程序入口 |
erizo_controller/erizoAgent/erizoAgent.js |
2 |
监测操作系统的CPU内存 |
erizo_controller/erizoAgent/erizoAgentReport.js |
3 |
ErizoJS的分配、保活 |
Erizo_controller/erizoAgent/erizoList.js |
4 |
和ErizoController进行通讯 |
Erizo_controller/erizoController/nuveProxy.js |
5 |
利用rabbit mq进行RPC操作 |
Erizo_controller/common/amqper.js |
#!/usr/bin/env bash
set -e
SCRIPT=`pwd`/$0
FILENAME=`basename $SCRIPT`
ROOT=`dirname $SCRIPT`
LICODE_ROOT="$ROOT"/..
CURRENT_DIR=`pwd`
NVM_CHECK="$LICODE_ROOT"/scripts/checkNvm.sh
. $NVM_CHECK
cd $ROOT/erizoAgent
nvm use
node erizoAgent.js $* &
cd $CURRENT_DIR
通过erizoAgent.js启动erizoJS媒体转发模块
erizoJS媒体转发模块的功能说明:
模块序号 |
模块功能 |
相应文件 |
1 |
ErizoJS主程序入口 |
erizo_controller/erizoJS/erizoJS.js |
2 |
转发服务配置与控制 |
erizo_controller/erizoJS/erizoJSController.js |
3 |
会议成员管理 |
erizo_controller/erizoJS/models/Client.js |
4 |
连接管理 |
erizo_controller/erizoJS/models/Connection.js |
5 |
订阅者管理 |
erizo_controller/erizoJS/models/Subscriber.js |
6 |
发布者管理 |
erizo_controller/erizoJS/models/Publisher.js |
7 |
SDP解析 |
erizo_controller/erizoJS/models/SessionDescription.js |
8 |
事件管理 |
erizo_controller/erizoJS/adapt_schemes/*.js |
9 |
WebRTC信令、媒体处理封装 |
erizoAPI/*.* |