#0# 前置条件
已经安装完成node,grunt,node 组件和python pip包等。需要安装google-cloud-cli组件。
Ubuntu安装google-cloud-cli组件
apprtc项目运行需要google-cloud-cli前置组件,且运行其中的dev_appserver.py。
根据google官方的关于安装gcloud cli的说明:https://cloud.google.com/sdk/docs/install?hl=zh-cn。
可以通过apt命令直接安装这两个组件,分别是:
sudo apt install google-cloud-cli
sudo apt install google-cloud-cli-app-engine-python
过程中apt命令访问google组件库失败,需要借助代理,在只需在正常的apt-get install命令前加上代理参数即可,如:sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8087" install google-cloud-cli
。
然而即便如此,最终在apptrc项目下执行python3 /snap/google-cloud-cli/165/bin/dev_appserver.py /out/app_engine
报错。
ERROR: (dev_appserver) You cannot perform this action because this Google Cloud CLI installation is managed by an external package manager.
因此尝试从源码安装google-cli。不依赖apt包管理工具/snap包安装工具。此时需要先卸载原来安装的google-cloud-cli:sudo apt remove google-cloud-cli
。及sudo snap remove google-cloud-cli
。
根据官方指导,得到安装步骤如下(本机是64位linux,不同版本的命令不同,详见 安装 gcloud CLI):
cd ~/Desktop
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-444.0.0-linux-x86_64.tar.gz # 可通过-e参数指定代理:-e "http_proxy=http://127.0.0.1:8087"
tar -xf google-cloud-cli-444.0.0-linux-x86_64.tar.gz
sudo ./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init --skip-diagnostics
./google-cloud-sdk/bin/gcloud components install app-engine-python
# 如上命令执行后 dev_appserver.py 正常情况下应该就在google-cloud-sdk文件夹的bin目录下
cd apprtc
# 注意这里要打开一个新的终端以使之前的更改生效
python3 google-cloud-sdk/bin/dev_appserver.py /out/app_engine
最终成功运行起apprtc项目
访问 http://127.0.0.1:8080 可以看到聊天室:
Docker部署
因为网络问题,从项目中的Dockerfile构建镜像失败。在apk add命令处执行出现问题。决定从Docker Hub官方pull一个镜像并部署。
下载量最高的是4年前的一个镜像
docker pull piasy/apprtc-server
docker run --rm --net=host \
-e PUBLIC_IP=127.0.0.1 \
-it piasy/apprtc-server
命令行输出结果如下图所示:
可以在网页中访问 http://127.0.0.1:8080。进入到apprtc聊天室。
当两个人(此处由两个浏览器表示)进入到同一间聊天室,即可进行通话(未测试更多人的情况),如下图所示:
更详细的代码和webrtc工作原理有待后续分析。