使用基于浏览器的webrtc应用,需要有web前端页面,由web服务器提供服务,常用的有nginx和apache,这里以ubuntu14.04系统上搭建apache为例。
注意:最新的webrtc仅支持HTTPS安全连接,所以需要支持 ssl,不使用https访问,会出现getUserMedia(获取本地摄像头对象)失败。
a, apache安装,sudo apt-getinstall apache2,安装方法细节可参考网上资料,安装完成后,配置文件在/etc/apache2/apache2.conf,默认端口为80,如果有冲突可修改/etc/apache2/ports.conf,默认的根目录在/var/www/html,可在本机或者同网络下其它机器浏览器输入(假如IP地址是10.27.105.60)http:// 10.27.105.60,如果有apache页面出来就说明OK了;
b, 生成ssl所需要证书;参考网上方法,可自己制作也可一些网站上申请。
cd /etc/apache2/
sudo mkdir cert
cd cert
把附件的两个证书放进来(cert.key,cert.crt)。
c, 配置apache的ssl功能支持模块
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/ssl.conf ssl. conf
sudo ln -s ../mods-available/ssl.load ssl.load
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/ default-ssl.conf default-ssl. conf
在default-ssl.conf文件中找到SSLCertificateFile和SSLCertificateKeyFile两处,并修改后面的文件路径为/etc/apache2/cert/cert.crt和/etc/apache2/cert/cert.key
完成后,执行sudo/etc/init.d/apache2 restart可能会失败,如下错误:SSLSessionCache: 'shmcb' session cache not supported
Vi ssl.conf中把相应的行注释掉,这样再 restart应该就OK了
浏览器中输入https://10.27.105.60,默认使用433端口,如有需要,可自行修改端口,注意,有两处需要修改:
第一处:/etc/apache2/ports.conf中ssl_module模块中的Listen,如下,我修改为40443
Listen 40443
第二处:/etc/apache2/sites-available/default-ssl.conf
修改完成后,重启sudo/etc/init.d/apache2 restart
然后在浏览器中输入https://10.27.105.60:40443
不出问题应该能出来页面。
d, 下载并webrtcdemo.tar.gz解压到/var/www/html目录下:
下载地址:http://download.csdn.net/download/yunjinwang/10037767
sudo tar –zxvf webrtcdemo.tar.gz
sudo mv webrtcdemo webrtc
完成后,在浏览器中输入https:// 10.27.105.60:40443/webrtc
不出问题应该会出现页面,“欢迎使用联彤视频通信”的字样。页面会检测本机的摄像头和麦克设备,如果有这些设备,则本地视频会出现视频内容,如果没有视频设备可安装虚拟摄像头设备。https://pan.baidu.com/s/1dE2yl1Z
A, 由于DEMO中使用的信令服务端采用js编写,需要安装nodejs到服务器上,版本不同可能会有一些问题,可http://pan.baidu.com/s/1qXNaDIW下载解压后,将node配置到PATH环境使用,配置后执行node–v可查看版本 V6.11.3;
B, 下载附件服务端代码webrtc_server.tar.gz到服务器目录
执行node index.js会打印listen on 40444,这是信令服务端监听的40444端口,可进入index.js中进行修改,记得同时要个性前面webrtcdemo/js/main.js中的相应该位置值;
这个信令服务端信是一个简易的信令交互系统,可进行扩展。具体过程可参考C/S代码。
环境:Ubuntu 14.04,单网卡
IP地址 10.27.105.60
安装方法:
# sudo apt-get install rfc5766-turn-server |
启动turnserver
# ./turnserver -c /etc/turnserver.conf |
-c后面是指定的配置文件
配置说明:
配置文件在/etc/turnserver.conf
使能基础的stun功能,需要增加配置项:
external-ip= 10.27.105.60 |
使能TURN的relay功能,开启long-term credential和realm,并且指定静态的用户名密码
明文的用户名密码
user=media1:mediatest1 user=media2:mediatest2 |
加密的
#turnadmin -k -u media1 -p mediatest1 -r liantong.com user=media1:0x8499785f1a6c5ae070116302f6c80136 |
设置realm,这个很关键,否则client端无法进行注册
realm=liantong.com |
公网映射总结
在入口路由器处做端口映射,整体网络拓扑如下图所示:
图1 TURNserver网络拓扑
在公网环境下的部署,需要注意:
external-ip配置项写成 public ip/private ip的格式
本例中,该项配置为:
external-ip=218.106.117.18/10.27.105.60 |
relay-ip项不需要设置,由external-ip的配置服务器自动处理
relay端口组,需要设置为端口映射的端口组
本例中,该项配置为:
min-port=59100 max-port=59130 |
Web、signaling、Turn服务器搭建好后,找两台有摄像头的PC,安装支持webrtc的浏览器,目前使用最新的chrome\firefox\360极速浏览器是可以的,都验证过。
在浏览器地址栏输入https://10.27.105.60:40443/webrtc,“当前用户ID”能分配到ID,说明信令服务器工作OK,本地视频有图像说明本浏览器支持webrtc,在另外一台PC上同样输入上面的网址,能分配到另外一个ID,在“请输入对方ID”框中输入对方的ID,点击startàcall就可进行视频通话了,理论上“远程视频”中会出现对方的图像。
注意:刷新页面如果弹出来“请求摄像头、麦克”等通知,请选择“允许”。
由于https是的证书过期,可能会出现访问受限,拿不到自己的ID,请baidu下解决。