coturn的用于webrtc的测试

发表于:2017-9-07 16:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:51Testing软件测试网采编

  coturn是一个开源的turn/stun的服务器,大家可以使用它进行webrtc的测试搭建。当然也可以用于生产环境。此文只是介绍其用于测试环境如何配置其用户于验证。这里可以配合apprtc-go的测试进行说明。
  coturn服务器是包括了turn和stun这两个服务的。如果你只需要stun服务。按照下边的命令启动就可以。(假设turn服务器和apprtc-go服务器都运行在192.168.2.170上,另外,如果需要测试turn服务,需要把连接的两台机器分别放在不同的网段,相互之间不能访问,才能发挥turn的功效)
  turnserver --no-auth --stun-only -v
  参数说明:
  --no-auth  不做用户认证,只有stun可以不用用户认证,
                  turn服务,在iceServer中必须给出用户名认证等,
                  要不然页面建立peerConnect的时候报错。
  --stun-only  服务器制作stun服务,不做turn服务。
  -v       打印log信息。请不要用-V,大V的信息量太多了。
  apprtc-go的启动需要添加stun参数給,命令如下
  ./apprtc-go -cert=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.pem \
                        -key=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.key  \
                        -host=192.168.2.170 \
                        -stun=192.168.2.170:3478 \
                        -wsport=8089
  iceServer返回json,只有stun服务器列表。
  {"iceServers":[
  {
     "urls": [
             "stun:192.168.2.170:3478"
             ]
  }
  ]}
  这样在浏览器就可以键入https://192.168.2.170:8080,就可以进行测试。建议使用两台机器,并连接到不同的的子路由器下进行测试。
  测试turn服务,固定用户名,密码
  turnserver -v  --user=daozhao:12345 --realm apprtc  --no-stun
  参数说明:
  --no-stun 不启动stun服务,所有stun的包都被忽略。
  --user  用户名和密码 组合形式username:password
  --realm  域标志,其实这个在这里随便写就可以。
               但是不能不写,要不然认证失败401
  apprtc-go启动的时候添加turn服务器参数,使用静态用户名密码。
  ./apprtc-go -cert=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.pem \
              -key=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.key \
              -host=192.168.2.170 \
              -turn=192.168.2.170:3478 -turn-username=daozhao -turn-password=12345 \
              -wsport=8089
  iceServers返回,注意,如果使用turn服务列表,必须有username和credential。这里的用户名密码是静态的。
  {"iceServers":[
  {
      "urls": [
        "turn:192.168.2.170:3478?transport=udp"
      ],
      "username": "daozhao",
      "credential": "12345"
    }
  ]}
  测试turn服务,动态验证用户名,密码:
  turnserver -v  --user=daozhao  --realm apprtc --static-auth-secret=654321  --no-stun
  参数说明:
  --static-auth-secret  认证加密需要的key
  --user   有static-auth-secret设置时候,这里只需要写用户名。
               不要写密码,要不然认证失败401
  apprtc-go启动命令行。
  ./apprtc-go -cert=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.pem \
              -key=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.key \
              -host=192.168.2.170 \
              -turn=192.168.2.170:3478 -turn-username=daozhao -turn-static-auth-secret=654321 \
              -wsport=8089
  iceServers返回,注意这里是一个动态的用户名密码。这个用户名密码的计算方法:
  用户名由两段组成 timestamp:username
  credential的计算方式 base64(sha1_HMAC(timestamp:username,secret-key))
  详细的参考这里,
  {"iceServers":[
  {
      "urls": [
        "turn:192.168.2.170:3478?transport=udp"
      ],
      "username": "1504596938:daozhao",
      "credential": "k/yZNM4Jfofkqqa7ygBP5yCstow="
    }
  ]}
  下边是一个完全事例。
  turnserver -v  --user=daozhao  --realm apprtc --static-auth-secret=654321 
  ./apprtc-go -cert=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.pem \
              -key=$GOPATH/src/github.com/daozhao/apprtc-go/mycert.key \
              -host=192.168.2.170 \
              -stun=192.168.2.170:3478 \
              -turn=192.168.2.170:3478 -turn-username=daozhao -turn-static-auth-secret=654321 \
              -wsport=8089
  iceServer返回:
  {"iceServers":[
  {
      "urls": [
        "stun:192.168.2.170:3478"
      ]
    }
  ,
  {
      "urls": [
        "turn:192.168.2.170:3478?transport=udp"
      ],
  "username": "1504598153:daozhao",
  "credential": "+pUWOR9wKKgBRXQoLJ7tl2PlFSA="
    }
  ]}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号