我目前正在开展一个学校项目:
我必须使用PeerJS,Meteor和WebRTC制作视频聊天应用程序。
Mine仅基于this tutorial,仅添加了CSS。
我成功地创建了一个在本地工作的东西(一切都在localhost上工作正常:3000
流星
命令在项目文件夹中运行。
我正在使用Windows 10,我使用mupx在我的EC2服务器上部署应用程序。
我跟着this tutorial,一切正常,我可以访问我的应用,登录并查看我的网络摄像头。但是一旦我尝试呼叫另一个用户,就不会建立链接。我认为这是因为mongoDB或流星服务缺乏一些东西,但我无法弄清楚是什么。
我的mup.json看起来像这样:
{
"servers": [
{
"host": "IP.OF.METEOR.APP.EC2",
"username": "ubuntu",
"pem": "C:/Path/to/file.pem"
}
],
"setupMongo": true,
"enableUploadProgressBar": true,
"appName": "PeerChat",
"app": "C:/pth/to/PeerChat",
"buildOptions": {
"debug": true,
"executable": "meteor"
},
"env": {
"PORT" : 80,
"ROOT_URL" : "http://ec2-ip-to-meteor-app.us-west-2.compute.amazonaws.com",
"MONGO_URL" : "http://IP.TO.MONGO.EC2:27017"
},
"deployCheckWaitTime": 300
}
有人可以就如何成功部署我的应用给我建议吗?我一直在尝试很多东西,但到目前为止都没有。
感谢您的帮助!
答案 0 :(得分:0)
最近,浏览器更改为阻止webrtc over http。如果您尝试运行它,您将在控制台日志中收到某种拒绝访问错误。
这意味着所有内容都需要使用https运行。在你的情况下,这意味着Meteor和peerjs-server。
查看mupx文档,我会假设它对您有用,它使用nginx本身,所以应该没问题。自己动手很有可能,但需要一些系统管理员功能。这也是正确的(在较小程度上使用peerjs-server)
Peerjs服务器
peerjs-server在https://github.com/peers/peerjs-server可用 目前它可以从命令行运行,但问题是像nginx / Passenger这样的工具不做命令行选项,所以我做了一个接受环境变量的fork。我的叉子位于https://github.com/mikkelking/peerjs-server
这是peerjs-server的启动文件,它使用一个名为forever的东西。 https://github.com/foreverjs/forever
一个简单的CLI工具,用于确保给定脚本连续运行 (即永远)。
先决条件:
运行peerjs-server的脚本:
#!/bin/bash
export PEERJS_PORT=9000;
export PEERJS_KEY=some-unique-string;
export PEERJS_SSLKEY=/etc/nginx/ssl/myserver.key;
export PEERJS_SSLCERT=/etc/nginx/ssl/myserver.pem;
export PEERJS_DEBUG=1;
cd /var/www/peerjs
forever start -l forever.log --append -o out.log -e err.log ./bin/peerjs --debug 2&>1 >./peerjs.log
此脚本将确保peerjs即使在崩溃后仍会运行,并且在重新启动服务器后仍然有效。
您可能还需要此文件:
〜peerjs / .forever / config.json
{
"root": "/home/peerjs/.forever",
"pidPath": "/home/peerjs/.forever/pids",
"sockPath": "/home/peerjs/.forever/sock",
"loglength": 100,
"logstream": false,
"columns": [
"uid",
"command",
"script",
"forever",
"pid",
"id",
"logfile",
"uptime"
]
}
我希望这会有所帮助。
答案 1 :(得分:0)
如果这只是一个演示,您无需去设置整个网站。您可以使用端口转发来允许第二台计算机参与。
假设您在本地计算机上的端口3000上运行meteor。找出你的本地网络IP地址,例如192.168.1.101
在第二台机器上使用如下命令执行端口转发:
dir_2/
它会要求您提供本地用户的密码。
现在用户可以访问localhost:3000并访问您的meteor应用程序。视频通话将被允许,因为浏览器认为您在本地计算机上
另一种选择是在同一台计算机上使用匿名窗口,并以其他用户身份登录。不如在2台计算机上这样做好。