licode 環境搭建

licode 環境搭建

2018年05月08日 14:56:36 twoconk 閱讀數:1737

 版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/twoconk/article/details/80239694

1、根據安裝指南安裝(參考:http://licode.readthedocs.io/en/master/from_source/ 即可),如果順利的話,應該都能正常過去,有失敗可能是網絡問題,所以先得有個好的網絡;


2、運行basicExample,發現起來後看不到視頻,主要是ice等服務器信息配置不對,修改licode根目錄下的配置文件licode_config.js,主要需要搭建一個本地的turn服務器(參考:http://www.cnblogs.com/lingdhox/p/4209659.html),然後修改其中的stun服務器的配置:
config.erizoController.iceServers = [{'url': 'stun:192.168.2.229'}, {'url':'turn:192.168.2.229', 'username':'lly', 'credential':'1234'}];


3、運行基本例子
./scripts/initLicode.sh 


然後啓動例子服務,監聽的端口是3001(http)和3004(https)
./scripts/initBasicExample.sh 


使用網址訪問 http://192.168.2.229:3001/connection_test.html 類似loopback測試,能推送和拉自己攝像頭的視頻


4、分析腳本:
ps -ef |grep node,發現node起了好些個服務
root      3932     1  0 01:31 pts/0    00:00:02 node nuve.js   ---監聽的是3000(http)端口
root      4266     1  0 01:31 pts/0    00:00:00 node erizoController.js
root      4593     1  0 01:31 pts/0    00:00:00 node erizoAgent.js
root      4599  4593  0 01:31 ?        00:00:00 node ./../erizoJS/erizoJS.js 172f7e09-5d31-d270-2fc7-0acdeaaf0b1d 10.0.2.15 10.0.2.15
 

這個腳本啓動的node basicServer.js & ,從源碼看,其中使用的nuve.js腳本,是initBasicExample.sh 啓動前從nuveClient的目錄下拷貝來的
cp $ROOT/nuve/nuveClient/dist/nuve.js $EXTRAS/basic_example/
然後nuve.js腳本則在nuve/nuveClient目錄下編譯生成的,命令如下:
google-closure-compiler-js ../src/N.js ../src/N.API.js > ../build/nuve.js
nuve.js封裝的N.API是nuve所有後臺服務的接口封裝
在basicServer.js文件中,有N.API的初始化函數調用:
N.API.init(config.nuve.superserviceID, config.nuve.superserviceKey, 'http://localhost:3000/');
所以使用的是3000端口開啓的服務




connection_test.html中引入的erizo.js是從哪裏來的?這個腳本是在installErizoTest.sh腳本中拷貝到測試的public目錄的
    <script type="text/javascript" src="erizo.js"></script> 
cp ../dist/erizo.js ../../test/public


root@vagrant-ubuntu-trusty:/webrtc/licode/extras/basic_example/public# locate erizo.js
/webrtc/licode/erizo_controller/erizoClient/webpack.config.erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js.map
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js.map 


流程,先創建房間,例子中的房間是這麼創建的:
        let extra = {data: {basicExampleRoom: true}, mediaConfiguration: mediaConfiguration};
        if (type === 'p2p') extra.p2p = true;


        N.API.createRoom(name, function (roomID) {
            theRoom = roomID._id;
            callback(theRoom);
        }, function(){}, extra); 
拿到房間id後,通過房間id創建token,然後實例化一個房間對象:
var room = Erizo.Room({token:'213h8012hwduahd-321ueiwqewq'});
然後進入房間:
room.connect();




5、firfox顯示正常,但mac看不到視頻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章