Licode服务与启动过程分析

Licode服务与启动过程分析

WebRtcConnection源码分析(一)

WebRtcConnection源码分析(二)

WebRtcConnection源码分析(三)

MediaStream源码分析(一)

MediaStream源码分析(二)

MediaStream源码分析(三)

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/*.*

猜你喜欢

转载自blog.csdn.net/tong5956/article/details/108022172