首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure上的PeerJS服务器404

Azure上的PeerJS服务器404
EN

Stack Overflow用户
提问于 2018-01-10 01:59:16
回答 2查看 862关注 0票数 1

我正在尝试在Azure上部署一个PeerJS服务器。在我的荣誉控制台上运行

代码语言:javascript
复制
node peerjs --port 9000

返回

代码语言:javascript
复制
Started PeerServer on ::, port: 9000, path: / (v. 0.2.8)

但是,当我试图从客户端代码连接到服务器时,我会得到404。直接访问浏览器中的appname.azurewebsites.net/peerjs/id也会返回404。

我看到他们的package.json文件,他们运行

代码语言:javascript
复制
bin/peerjs --port ${PORT:=9000}

而不是直接传递9000;我假设这是一个环境变量。然而,尝试在Azure上运行这个

代码语言:javascript
复制
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上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-10 09:11:19

  1. Azure应用程序服务不允许我们监听客户端口。我们需要使用process.env.PORT代替。见听一听其他端口Microsoft Azure Nodejs
  2. Azure应用程序服务(在Windows平台上)运行在Microsoft IIS上。因此,我们需要将应用程序文件放到它的虚拟目录(D:\home\site\wwwroot)中,不再需要通过Kudu控制台手动运行应用程序。

在这种情况下,首先需要在app的根目录下安装库:

代码语言:javascript
复制
npm install peer 

然后创建一个名为index.jsapp.js的文件,其内容如下,并将其放入/wwwroot文件夹:

代码语言:javascript
复制
var PeerServer = require('peer').PeerServer;
var server = PeerServer({port: process.env.PORT, path: '/'});

正如@Mikkel在评论中提到的,PeerServer使用WebSocket协议,因此在Azure门户中应该启用WebSockets,如下所示:

如果应用程序还没有创建,您还需要签出这个职位来添加一个web.config文件。

票数 2
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48179252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档