欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

webrtc项目笔记 博客分类: webrtc  

程序员文章站 2024-02-10 11:42:58
...

1.WebRtc介绍

这个网上一大堆,主要是谷歌开源的技术,实时通信技术。

废话不多说,主要是涉及两个服务器:

  • 信令服务器(Signal Server)

     信令服务器主要是将两个或多个需要通信的拉到一起然后帮他们握手连接,相当于大家先认识一下。

     然后,大家在进行通信。

 

  • STUN/TURN服务器

      在通过信令服务器的引导握手后就需要将webrtc接口提供的数据传输给对方,此时如何将处于不同网络里的双方进行连接就需要TURN/STUN服务器,网上俗称打洞服务器,其实这个turn/stun是一个网络协议可以参见ref5766,但是主要是配置问题,不好配置正确,下面说明turnserver下载,安装,配置过程:

     (1)下载turnserver

       http://turnserver.open-sys.org/downloads/

      自己选择版本,针对不同的Linux下载不同的包(我使用的是centos7)

      http://www.blogjava.net/linli/archive/2015/06/18/418935.html

    (2)安装turnserver

      下载好后,直接通过Linux命令安装,此处我使用yum 进行安装

      如果有依赖包未安装,安装即可。

    (3)配置turnserver[关键]

 

     turnserver的默认配置放到/etc/turnserver/turnserver.conf里面

   修改配置如下:

turnserver监听端口

listening-port=3478

turnserver监听ip地址(默认本机)

listening-ip=192.168.11.1

udp模式自动优化

udp-self-balance

同一私有网段的不需要turnserver

relay-ip=192.168.88.203

如果网络架构是nat模式需要配置为外网的那个ip

external-ip=11.22.33.44

长回话必须开启,同时需要配置用户名密码

lt-cred-mech

user=username:password或者user=username:签名后的password(签名方法在/usr/bin/下运行turnadmin -k -u username-r 会话范围如baidu.com -p password)

sqlite数据库存放路径,主要存放用户名及密码到用户表,可将上面的username,password加到表中,添加方式自己百度sqlite3使用

userdb=/var/db/turndb

 会话范围

realm=baidu.com

 

客户端配置

'iceServers': [
    {
      'url': 'turn:192.168.11.1:3478',
      'credential': 'password',
      'username': 'username'
    }
  ]

 

提醒一下如果使用phonertc时,phonertc的browser版本有bug,其中的password改为credential即可

 

turnserver 启动:

systemctl start turnserver.service