最近需要实现一个web、Android端视频通话需求,找到了starRTC,一番折腾之后总算解决了。
一、前提条件
目前只支持谷歌浏览器72版本以上的,72以下的视频连接的时候会出现问题;
在虚拟机上部署的,系统版本centOS7,在starRTC官网下载最新的starrtc-server、starrtc-web-demo;同时下载好 nginx、tomcat
二、启动项目
starrtc-server的启动官网上有详细的文档,详情参阅starrtc-server部署;
web项目放在tomcat的webapps目录下,修改index.js 私有部署的ip部分;
用到那个服务就开启对应的端口号就行,命令如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent //开启端口tcp、udp
firewall-cmd --reload //重新载入
firewall-cmd --list-ports //查看端口是否开放成功
注意虚拟机启动编辑一下虚拟机的网络为桥接方式,这样可以和你本机是一个网段,方便访问。
然后访问ip:端口号/starrtc-web-demo/index.html;访问到web页面就代表服务器端功能正常。
ip:29991~29995 端口访问一下,进行证书信任,不然会出现端口号连接报错;用到什么功能就验证什么,我这边只需要视频功能,所以只验证了29991、29992端口
三、视频连接
这一步会出现错误,web端的index.html必须是HTTPS 请求的,这时候就用到nginx了。
nginx的下载和安装,详情请自行百度,这个就不再多说了;只要说的是nginx 配置https访问,首先访问一下自生成ssl证书;
生成证书之后配置好nginx 配置文件,重新启动一下就行。
这个地方出现问题
nginx: [emerg] unknown directive "ssl_certificate1" in /usr/local/nginx/conf/nginx.conf:107
这个问题是nginx没有编译ssl模块造成的,进入nginx的解压目录就是nginx-1.0.0后面带版本号的目录,进入里面执行
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
cp objs/nginx /usr/local/nginx/sbin/ //将新生成的nginx覆盖掉老的nginx
/usr/local/nginx 是你nginx 的安装目录,再重启一下nginx就可以了。
那两台电脑保证在同一局域网,访问index.html 地址,一对一视频,能视频对接成功就没有问题。
四、web、Android端对接
打开Android端,找到服务器设置,选择私有部署,填写服务器ip,保存后退出
重新打开进入一对一视频选项,目前没有在线列表,可以点击下面的创建视频,输入web端的id就可以通话