WebRTC的信令服务器Collider和Turn服务器搭建

写在前面:这篇博客是上一篇博客的继续,上一篇博客讲解了下载appRTC和编译安装的过程。

一、信令服务器Collider安装:

    1、依赖安装:

       1) Collider服务器是基于Golang开发的,并使用了google appengine的python开发包,我自己上传到CSDN的下载地址:

            http://download.csdn.net/download/wangghq800/9767019

        2) golang的安装:

            sudo apt-get install golang

    2、部署:

            1) 在你的$HOME目录下建立goWorkspace文件夹和子目录src,命令如下:

                mkdir -p $HOME/goWorkspace/src

            2) 拷贝$HOME/apprtc/src/collider目录下所有的go文件到src文件夹下,命令如下:

                cp -rf $HOME/apprtc/src/collider/*  $HOME/goWorkspace/src

            3) 安装collide代码的依赖包并编译,进入目录 $HOME/goWorkspace/src,

                设置GOPATH环境变量    export GOPATH=$HOME/goWorkspace 并执行 :

                     go get collidermain

                     go install collidermain

             4)成功编译后会在$HOME/goWorkspace目录下生成bin和pkg目录,执行文件在bin目录下:

                执行命令(这里测试过不用修改main.go,通过参数传进去变量):

              $HOME/goWorkspace/bin/collidermain -port=443 -tls=false -room-server=http://10.0.0.4

                上面简单讲解:端口号为:443,关闭TLS加密功能,collider服务器地址为:http://10.0.0.4

二、Turn服务器coTurn的安装:

        因为我用的是微软云Azure的服务器,ubunt看到的只是内网IP,还有一个对外的额公网IP,端口是一一对应的。

        1、下载http://turnserver.open-sys.org/downloads/

         选择对应系统的安装包,我的是64位ubuntu,我选择了这个安装包:

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

         2、解压并进入解压目录,执行下面命令: 

          sudo apt-get install gdebi-core

          sudo gdebi coturn_4.2.2.2-1_i386.deb

         3、coTurn新建一个用户test,密码为test,产生对应的key:

            turnadmin -a -u test -r rtc.whenchat.com -p test 

            turnadmin -k -u test -r rtc.whenchat.com -p test 

            如图:    

                    

         4、生成签名证书:

                 sudo openssl req -x509 -newkey  rsa:2048 -keyout /etc/turn_server_pkey.pem\

                 -out /etc/turn_server_cert.pem -days 99999 -nodes

           

           5、根据我们私有IP和公有IP,用户名和密码,配置/etc/turnserver.conf;

                备份下:mv /etc/turnserver.conf /etc/turnserver.conf.back

                新建文件:vim /etc/turnserver.conf, 并把下面配置拷贝进去:

                    listening-device=eth0

                    listening-port=3478
                    listening-ip=10.0.0.4
                    external-ip=139.217.40.189/10.0.0.4
                    min-port=8000
                    max-port=10000
                    verbose
                    fingerprint
                    lt-cred-mech
                    #use-auth-secret #这个配置导致Turn401
                    #static-auth-secret=test #这个配置导致Turn401
                    user=test:0x486c9ec85f132b2e6b0243dc8299c1d8
                    user=test:test

                    realm=demo.com
                    cert=/etc/turn_server_cert.pem
                    pkey=/etc/turn_server_pkey.pem
                    no-loopback-peers
                    no-multicast-peers
                    no-cli

            6、启动coTurn

                    service coturn start

          

三、Turn服务器的REST API实现:

        根据上一篇博客,在 appRTC编译的目录下:apprtc/out/app_engine/constants.py 文件中配置Turn服务器的配置,我的对应修改如下:

        TURN_BASE_URL = 'htpp://139.217.40.189'
        TURN_URL_TEMPLATE = '%s/turn?username=%s&key=%s'
        CEOD_KEY = 'test'

        ICE_SERVER_BASE_URL = 'http://139.217.40.189:8080'
        ICE_SERVER_URL_TEMPLATE = '%s/turn?knowchat&key=%s'

        上面的配置决定了 安卓的AppRTC的获取ICE的RETS 的接口为:

            http://139.217.40.189:8080:%s/turn?knowchat&key=%s

 

       其中,最重要的是: 139.217.40.189:8080这个是room-server的appRTC启动的HTTP服务器:

       所以我在 apprtc/src/app_engine/apprtc.py 文件中加入了一个REST API接口,如下图中最后一行,和上面对应 class TurnPage类:

        

       

 

参考的其他篇博客:http://blog.csdn.net/jwcqc/article/details/53156347

                              http://blog.csdn.net/s569646547/article/details/50780682

 

        

转载于:https://my.oschina.net/andywang1988/blog/848645

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值