这部分,主要是参考网上别人的做法,只不过中间遇到的一些问题这里我会稍微写一下。
首先,webrtc服务器的编译主要参考这位大神的做法:http://blog.youkuaiyun.com/s569646547/article/details/50780682
我这里用的是Ubuntu 16.04 LTS 64位的linux系统。
服务器方面需要注意的是,启动服务器的时候不要设置系统代理,因为下载某些软件的时候可能需要翻墙。如果编译中出现下载失败的问题,很有可能是翻墙造成的,需要自己去确认下是不是需要翻墙。另外,设置系统代理或者取消代理,可能需要注销下才会起作用,这个有点麻烦,为什么不是立即生效呢。。。
一、AppRTC房间服务器
这个编译按照链接里的做就行,只不过中间安装某些软件的时候,需要等的时间比较长,耐心等就行了。
编译完成,配置的地方说几点不同的:
1.我这里用的iceserver,好像最新的webrtc demo用的是iceserver,所谓的iceserver其实就是请求一个url网址,返回一组打洞服务器地址,我这里改成这个
ICE_SERVER_BASE_URL = 'http://192.168.123.231'
完整的url是http://192.168.123.231/v1alpha/iceconfig/?key=north,这里的url需要自己做一个网站配置一下,理论上,如果只是测试,写成一个静态的index.html返回给客户端应该也是可以的。
url返回的json数据是:
{"iceServers":[{"username":"1473662094:ling","credential":"HbWuzrR0z\/Ei0wBPvHISXpdGvc4=","ttl":86400,"urls":["turn:192.168.123.231:3478?transport=udp","turn:192.168.123.231:3478?transport=tcp","turn:192.168.123.231:3479?transport=udp","turn:192.168.123.231:3479?transport=tcp"]},{"username":"1473662094:ling","credential":"HbWuzrR0z\/Ei0wBPvHISXpdGvc4=","ttl":86400,"urls":["turn:192.168.123.231:3478?transport=udp","turn:192.168.123.231:3478?transport=tcp","turn:192.168.123.231:3479?transport=udp","turn:192.168.123.231:3479?transport=tcp"]}]}
注意这里的urls,链接里面是uris,这是不同的。最新webrtc demo是用的urls解析的。另外mac版本的demo解析这个json和android不同,