WebRTC是谷歌的开源的实时视频音频聊天技术,支持跨平台,Nat穿透技术(Stun,Turn,Ice),在部分支持Html5的浏览器里集成了这个功能。
至目前为止支持的PC浏览器有:Chrome31+,opera19+,FireFox26+
至目前为止支持的Android浏览器有:Chrome,opera,FireFox
IE所有版本均不支持!!
IPhone手机暂不支持!!
整个WebRtc里面已经封装好了视频音频采集和传输,你需要做的就是使用任何可以实现WebSocket的语言来开发一套信令服务器
信令服务器负责用户拨号控制,可以集成用户验证等功能来验证用户身份等等,需要为WebRTC做的只有传递协议数据,将一边的传递给另一边,让两边互相了解对方的浏览器视频音频解码类型,版本情况,内外网情况等等,
需要使用的有:vs
chrome
一个公网IP
CentOS
(这个版本集成了stun和turn,不需要分别再安装了)
需要使用的库:Fleck:一个.net的WebSocket库,百度可以搜得到。
LitJson:一个小巧的Json解析库。
IWebSocketConnection类默认没有Args属性,是我后来修改源码添加的。
下面是我自己写的一个简单的WebRTC服务端,也就是信令服务器
下面是网页端的Js代码,算是客户端,rtc_main.js
网页前台代码。。。很简陋,vid可无限扩展
main.css
下面是Linux配置Stun和Turn服务端
先下载依赖包libevent编译安装
再下载服务端turnserver编译安装
修改服务端配置文件
cd/usr/local/etc/cp-pturnserver.conf.defaultturnserver.confcp-pturnuserdb.conf.defaultturnuserdb.confviturnserver.conf
查找修改以下内容,保存退出。
listening-device=eth1服务器监听哪块网卡listening-ip=1.1.1.1服务器监听哪一个IP这里1.1.1.1对应你的公网IP
其他选项根据情况设置,有详细的解释
下一步生成用户Key,用来验证用户,(不包含中括号)
这个命令会产生一个0x开头的字符串,这便是用户的Key。
然后把用户名和Key保存在turnuserdb.conf里
viturnuserdb.conf
下面是写入内容,保存退出。
[用户名]:[Key]
现在服务器配置完成,可启动服务了。直接运行turnserver即可。