zoukankan      html  css  js  c++  java
  • 搭建自己的AppRTCDemo服务器


    http://www.jianshu.com/p/c55ecf5a3fcf

    http://io.diveinedu.com/2015/02/05/%E7%AC%AC%E5%85%AD%E7%AB%A0-WebRTC%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA.html

    https://github.com/webrtc/apprtc

    http://www.cnblogs.com/cther/p/4604599.html


    后台运行的命令用:前面加 nohup 后面加 &

    nohup dev_appserver.py --host=0.0.0.0 ./out/app_engine &

    (一)
    先搭建房间服务器AppRTC:

    sudo apt-get update
    sudo apt-get install git
    sudo git clone https://github.com/webrtc/apprtc
    sudo apt-get install nodejs
    sudo apt-get install npm
    sudo npm install -g npm
    sudo apt-get install nodejs-legacy
    sudo npm -g install grunt-cli


    还需要下载工具文件才能运行服务器:
    https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
    下载google_appengine_1.9.24.zip。
    unzip google_appengine_1.9.24.zip
    sudo vi /etc/profile
    export PATH="$PATH:/path/to/google_appengine/"
    source /etc/profile

    然后修改配置文件的几个地方,
    一、修改文件src/app_engine/apprtc.py
    搜索 "wss:" 和 "https:" (注意冒号)
    可以在方法 get_wss_parameters 里搜索到,
    这里需要把 wss: 替换成 ws:、把 https: 替换成 http:。

    搜索make_pc_config,在config里面加turnserver和stunserver地址和用户密码,xu是用户名,密码是1234.如下:

    def make_pc_config(ice_transports):
    config = { 'iceServers': [{
    "url": "stun:198.11.178.145"
    },{
    "url": "turn:xu@198.11.178.145",
    "credential": "1234"
    }] };

    保存退出,就可以了。

    二、修改文件src/app_engine/constants.py
    ① 搜索 TURN_BASE_URL
      将等号后面的字符串替换为 turnserver的地址,如:'http://198.11.178.145:3478'

    ② 搜索 WSS_INSTANCES
      可以看到,这里被配置为了一个数组,不过我们只有单台服务器。所以先删掉数组的其他元素,只保留一个。
      在保留下来的元素中,我们只修改 WSS_INSTANCE_HOST_KEY 对应的值即可。
      将其改为上面 Collider 服务器的可访问地址。比如:198.11.178.145:8089。不需要协议,没有 URI。
    改完以上两处,可以保存退出了。

    cd /apprtc (apprtc目录下有build、src、tool目录还有一些文件,切换到这个目录然后在执行以下命令)
    npm install
    sudo apt-get install python-webtest
    grunt build

    执行成功,出来out文件夹。

    最后运行房间服务器:

    cd /apprtc

    dev_appserver.py --host=0.0.0.0 ./out/app_engine


    (二)
    搭建信令服务器,可以参照https://github.com/webrtc/apprtc/tree/master/src/collider步骤。
    刚才通过https://github.com/webrtc/apprtc下载的源码里面就含有了信令服务器的代码。在srccollider目录下。
    先安装依赖的golang环境。
    sudo apt-get install golang-go
    mkdir -p /collider_root
    sudo /etc/profile
    export GOPATH=/collider_root
    source /etc/profile
    将srccollider目录下的collider,collidermain,collidertest三个文件夹拷贝到/collider_root/src目录下。

    先修改配置文件collider_root/src/collidermain/main.go中的房间服务器地址。
    var roomSrv = flag.String("room-server", "http://198.11.178.145:8080/", "The origin of the room server")
    修改后保存。

    cd /collider_root/src
    sudo apt-get install mercurial
    go get collidermain
    go install collidermain
    成功编译后会在collider_root目录下生成bin和pkg文件夹,可执行程序在bin中。

    最后运行信令服务器。
    /collider_root/bin/collidermain -port=8089 -tls=false


    (三)
    搭建turnserver。

    wget http://turnserver.open-sys.org/downloads/v4.4.1.2/turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

    tar xvfz turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

    sudo apt-get install gdebi-core

    sudo gdebi coturn*.deb

    vim /etc/default/coturn

    把上面打开编辑的文件中的这一行TURNSERVER_ENABLED=1去掉注释,保存退出.

    vim /etc/turnserver.conf

    删除所有改为:

    listening-device=eth0
    relay-device=eth0
    Verbose
    fingerprint
    lt-cred-mech
    use-auth-secret
    static-auth-secret=1234
    user=xu:1234
    user=xml:1234
    stale-nonce
    cert=/etc/turn_server_cert.pem
    pkey=/etc/turn_server_pkey.pem
    no-loopback-peers
    no-multicast-peers

    上面cert和pkey配置的自签名证书用Openssl命令生成:
    sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

    启动turnserver 。
    turnserver -c /etc/turnserver.conf -v


    然而怎么单独测试turnserver为webrtc服务成功呢?

    就是自己部署下面这个例子,这个部署很简单。
    http://chinawebrtc.org/forums/topic/%E4%BD%BF%E7%94%A8webrtc%E6%90%AD%E5%BB%BA%E5%89%8D%E7%AB%AF%E8%A7%86%E9%A2%91%E8%81%8A%E5%A4%A9%E5%AE%A4-%E5%85%A5%E9%97%A8%E7%AF%87/
    https://github.com/LingyuCoder/SkyRTC-demo

    例子使用说明:

    安装Node.js及npm环境
    下载源码到本地,并解压缩
    移动到解压后的目录下
    使用命令npm install安装所需要的库
    运行命令node server.js
    访问localhost:3000#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相通信

    然后根据说明,用4G手机谷歌浏览器跟电脑通话。

    如果在虚拟机里请使用桥接模式:直接连接物理网络,勾选复杂网络连接状态。

    http://198.11.178.145:8080

  • 相关阅读:
    greenplum导数据
    greenplum 集群部署
    jmx远程访问权限设置
    分布式实时日志处理平台ELK
    hbase0.95.2部署
    hadoop2.2.0部署
    highcharts
    FreeMarker
    使用solr的完整流程
    solr搜索流程
  • 原文地址:https://www.cnblogs.com/hujihon/p/5102017.html
Copyright © 2011-2022 走看看