我正在尝试在Azure上部署一个PeerJS服务器。在我的荣誉控制台上运行
node peerjs --port 9000返回
Started PeerServer on ::, port: 9000, path: / (v. 0.2.8)但是,当我试图从客户端代码连接到服务器时,我会得到404。直接访问浏览器中的appname.azurewebsites.net/peerjs/id也会返回404。
我看到他们的package.json文件,他们运行
bin/peerjs --port ${PORT:=9000}而不是直接传递9000;我假设这是一个环境变量。然而,尝试在Azure上运行这个
Error: Error: listen EACCES ${PORT:=9000}这意味着Azure不承认${PORT:=9000}为有效端口。
我知道,我的客户端代码没有什么问题,因为:( a)我直接从PeerJS的网站复制了它;( b)当我将PeerJS部署到Heroku时,一切都正常工作。它只是没有在Azure上运行。
我尝试过的其他事情:我在bin文件夹中编辑了peerjs,以使用process.env.PORT,而不是通过命令行传入的内容,但这不起作用,从而产生了相同的EACCES错误。当我尝试console.log(process.env.PORT)时,我没有定义。我的谷歌搜索没有找到任何解决方案,尽管这个人(输出)似乎有一个类似的错误,而不是在Azure上。
发布于 2018-01-10 09:11:19
process.env.PORT代替。见听一听其他端口Microsoft Azure Nodejs。D:\home\site\wwwroot)中,不再需要通过Kudu控制台手动运行应用程序。在这种情况下,首先需要在app的根目录下安装库:
npm install peer 然后创建一个名为index.js或app.js的文件,其内容如下,并将其放入/wwwroot文件夹:
var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: process.env.PORT, path: '/'});正如@Mikkel在评论中提到的,PeerServer使用WebSocket协议,因此在Azure门户中应该启用WebSockets,如下所示:

如果应用程序还没有创建,您还需要签出这个职位来添加一个web.config文件。
发布于 2018-01-10 04:24:52
这将是防火墙问题..。您需要在Azure设置面板中打开端口9000。
从机器本身打开浏览器到http://localhost:9000/或http://localhost:9000/peerjs,您将看到标准的Peerjs服务器JSON输出。
或者,如果只有命令行,请尝试curl http://localhost:9000/或http://localhost:9000/peerjs。
https://stackoverflow.com/questions/48179252
复制相似问题