apprtc nodejs room服务器+信令服务器搭建方式

  • PHP二次开发
  • 2018-1-26 16:59
  • PHP二次开发
  • 阅读(2089)
  • 评论(1
  • 摘要: nodejs 安装:nodejs下载地址:https://nodejs.org/dist/v6.11.3/node-v6.11.3-linux-x64.tar.gzwget https://nodejs.org/dist/v6.11.3/node-v6.11.3-linux-x64.tar.gz tar xvf node-v6.11.3-linux-x64.tar.gz vi / ...
    nodejs 安装:
    nodejs下载地址:https://nodejs.org/dist/v6.11.3/node-v6.11.3-linux-x64.tar.gz

    wget https://nodejs.org/dist/v6.11.3/node-v6.11.3-linux-x64.tar.gz

      tar xvf node-v6.11.3-linux-x64.tar.gz

        vi /etc/profile
        在最下面加入
           # node (注释作用)
           export NODE_HOME=/usr/local/src/node-v6.11.3-linux-x64
           export PATH=$PATH:$NODE_HOME/bin  
           export NODE_PATH=$NODE_HOME/lib/node_modules 

       :wq (保存并退出)
        source /etc/profile (使配置文件生效)

        你就可以用 node -v 看自己的成果了! 


    apprtc for nodejs
    下载地址:https://github.com/MidEndProject/node-apprtc
    解压到服务器

    需要修改的地方:
    config/index.js

    module.exports = {
      constant: {
        LOOPBACK_CLIENT_ID: 'LOOPBACK_CLIENT_ID',
        TURN_BASE_URL: 'http://www.php2.cc',  //修改成自己的turnserver配置地址,turn及sturn服务安装方式:http://www.php2.cc/article-2676-1.html
        TURN_URL_TEMPLATE: '%s/turn',
        WSS_HOST_PORT_PAIRS: ['www.php2.cc:8089'],  //修改成自己的信令服务器地址,下文会写配置
        RESPONSE_UNKNOWN_ROOM: 'UNKNOWN_ROOM',
        RESPONSE_UNKNOWN_CLIENT: 'UNKNOWN_CLIENT',
        RESPONSE_ROOM_FULL: 'FULL',
        RESPONSE_DUPLICATE_CLIENT: 'DUPLICATE_CLIENT',
      },
      server: {
        host: '127.0.0.1',
        port: process.env.PORT || 4567
      }
    };


    controller/common.js

    var pcConfig = {
        iceServers: [  //修改成自己的stun服务器地址
            {"urls": "stun:stun.php2.cc"},
            {"urls": "stun:www.php2.cc"}
            ],
        bundlePolicy: 'max-bundle',
        rtcpMuxPolicy: 'require'
      };

    if (wssTLS && wssTLS == 'false') {
        return {
          wssUrl: 'ws://' + wssHostPortPair + '/ws',
          wssPostUrl: 'http://' + wssHostPortPair
        }
      } else {
        return {
          wssUrl: 'ws://' + wssHostPortPair + '/ws',  //将wss修改成ws
          wssPostUrl: 'http://' + wssHostPortPair  //将https修改成http
        }
      }

    cd node-apprtc
    运行安装:
     npm install
    启动方式:
    nohup node index.js > myLog.log 2>&1 &


    collider信令服务器
    下载地址:https://github.com/webrtc/apprtc
    collider是Apprtc这个项目配套的一个信令服务器。在我们的Apprtc项目中就已经携带了它的源码。
    目录:src/collider

    安装Golang
    colider是一个使用Golang语言编写的项目,因此在安装collider之前,我们必须先安装Golang

    下载Golang源码(需FQ)
    $wget https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz
    解压

    $tar -xf go1.5.3.linux-amd64.tar.gz
    配置Golang环境变量
    Go 二进制版本,假设它们会被安装在/usr/local/go(Windows,c:\Go)中,如果没有安装在该位置,我们需要配置一下环境变量
    export GOROOT=<goInstallDir>
    export PATH=$PATH:$GOROOT/bin

    GOPATH环境变量用来指定你的工作目录。当我们在开发Golang项目的时候需要指定

    GOPATH环境变量用来指定除GOROOT之外包含的Go项目源代码和二进制文件的目录。go install和go工具都会用到GOPATH,作为编译后二进制文件的存放目的地和import包时的搜索路径。

    GOPATH是一个路径列表,也就是可以同时指定多个目录。多个目录在Mac和Linux下通过”:”分割;Windows下通过”;”分割。注意,大部分情况下会是第一个路径优先,比如:查找包

     mkdir /root/GOWorkPlace
     cd /root/GOWorkPlace/
     export GOPATH=`pwd`

    $GOPATH 目录约定有三个子目录:
    src 存放源代码(比如:.go .c .h .s等)
    pkg 编译后生成的文件(比如:.a)
    bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)
    安装colider
    第一步将apprtc/src/colider目录下的collider、collidermain、collidertest拷贝到GOPATH/src/下
    修改$GOPATH/src/collidermain/main.go 设置我们的房间服务器,防止第三方使用我们的信令服务器
    // var roomSrv = flag.String("room-server", "https://appr.tc", "The origin of the room server")
    var roomSrv = flag.String("room-server", "https://apprtc.www.php2.cc", "The origin of the room server")

    安装collidermain项目依赖
    $go get collidermain
    安装GO环境的websocket包. 如果上面命令失败,那么则用下面这个麻烦的方法

    $ cd $GOPATH/src
    $ wget http://www.golangtc.com/static/download/packages/golang.org.x.net.tar.gz
    $ tar xvf golang.org.x.net.tar.gz
    $ go install golang.org/x/net/websocket/
    这样collidermain的项目依赖就安装完了

    我们安装collidermain命令服务器程序:

    $ go install collidermain

    启动colider
    nohup $GOPATH/bin/collidermain -port=8089 -tls=false > go.log 2>&1 &

    作者注:apprtc之所以采用了nodejs,是因为Python的room服务器与信令服务器通讯这块,一直没部署成功,最终room服务端采用了nodejs,经测试没有通讯问题,能够正常建立视频连接。
    Android apprtc源码地址:https://github.com/njovy/AppRTCDemo
    IOS apprtc 源码地址:https://github.com/ISBX/apprtc-ios
    目前存在问题:Android与IOS之间通讯,Android能够正常看到IOS端图像,IOS端看Android端的会比较卡,经常性的卡死。


    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-2678-1.html

    相关阅读

    发表评论

    最新评论

    引用 哦引力   2018-1-29 17:20
    Android正常看到IOS端图像,不卡

    查看全部评论(1)

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!