先来两篇扫盲文章,大致有个了解:
安装KMS (Kurento Media Server)
推荐使用Docker
安装,如果没有安装Docker
,这里有个安装教程:Centos安装Docker
打开Docker相关页面:Docker Hub,按照官方说明来
- 安装镜像:
1 | $ docker run -d --name kms -p 8888:8888 kurento/kurento-media-server:latest |
- 检查KMS是否已准备就绪并且正在侦听,请发出以下命令(您需要在系统上安装curl)
1 | $ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: 127.0.0.1:8888" -H "Origin: 127.0.0.1" http://127.0.0.1:8888/kurento |
如果出现以下情况,说明启动成功,不要在意错误提示,这是一个预期的错误,因为curl命令不会说KMS理解的协议。我们只是在检查服务器是否启动并正在侦听连接。
- KMS 日志
服务器日志可通过Docker公开其容器的日志的常规方式获得。因此,假设您为容器kms
命名(使用--name kms
,如上例所示):
1 | $ docker logs kms |
您可能还想实时跟踪日志,可以使用-f
或--follow
来实现:
1 | $ docker logs -f kms |
- 环境变量
- 调试日志
KMS使用环境变量GST_DEBUG
定义所有基础模块的调试级别。设置此变量可以更改KMS生成的日志的详细程度:
1 | $ docker run -d --name kms -p 8888:8888 -e GST_DEBUG="Kurento*:5" kurento/kurento-media-server:latest |
检查有关调试日志的文档部分,以获取有关此环境变量和其他环境变量的更多信息。
docker安装stun和turn服务器(打洞服务器)
- 安装git,做好基本配置
1 | $ yum install git -y |
- 拉取
coturn
一个安装工具仓库
1 | $ git clone https://github.com/konoui/kurento-coturn-docker.git |
使用Dockerfile
安装镜像
1 | $ sudo docker build --tag coturn . |
出现错误:
原因可能是https://ubuntu.com/esm
不能再使用,或者不能再免费使用,需要登录授权,我尝试了一下,可以打开Dockerfile
暂时把curl/
这一行去掉,先不安装这个工具。
安装成功之后需要测试一下,打开页面:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
这个dockerfile给你配置turn的用户名和密码都是kurento,在页面中对应的位置填入服务器信息,如图:
点击Add Server
,调整一下参数,点击下面的Gather candidates
按钮,如果出现如下图的结果,并且服务器有输出日志,说明,成功了。
浏览器输入:IP + PORT
,测试一下,出现如下页面:
测试最好使用
FireFox浏览器
,Chrome
有时候会出现错误:The server stun:xxx.xxx.xxx.xxx:3478 returned an error with code=701: STUN server address is incompatible.
测试搭建是否成功
使用官方helloworld Node.js
版本测试:
1 | curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - |
其中需要注意的是:nodejs不要安装过低的版本,推荐适应
nvm
切换最新稳定版。如果使用的root
用户,bower install
后面要跟参数--allow-root
。不推荐使用cnpm
,会出现莫名奇妙的错误。
运行可能会出现如下错误:
TypeError: Cannot read property 'unmask' of undefined at Receiver.unmask
这是package.json
中的ws
的版本过低"ws": "~1.0.1"
或者出现TypeError: Cannot read property 'session' of undefined
这是package.json
中的ws
的版本过高"ws": "^7.1.0"
这两种错误都需要手动把package.json
中的ws
版本改成"ws": "~2.0.2"
这时候,再次运行,打开页面,会发现,还是不成功。
进入kurento-media-server docker
:docker exec -it kms /bin/bash
,进入/var/log/kurento-media-server/
,查看日志文件,发现最后一行有一个错误: