node.js - Node 上有 2 个不同的端口,带有 azure

标签 node.js sockets azure

我有这个 app.js 代码,可以在端口 :3000:3001 上进行调用

http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app).listen(3001);
var io = require('socket.io').listen(server,{log:false, origins:'*:*'});

底部是

.listen(3000);

因此,对于我在 azure 中的网络应用程序,我认为 :3001 未正确打开

在我的本地计算机上,我可以在端口 localhost:3000 上浏览此文件夹 Assets ,但要访问我的 /socket.io/socket.io.js 目录使用localhost:3001 这是执行我们想要的任务的代码结构的一部分。

我已经跑了很多 Node 和 azure 实验室,但他们都没有做这个特定的设置,如果我进入命令提示符并在本地运行app.js,我的网络应用程序在线再次工作,所以我假设端口 3001 在我的计算机上本地打开,而 azure 托管 3000,我需要某种方法使 Web 应用程序在不运行 VM 的情况下完成这两项操作,我不完全确定 azure Web 应用程序中可以实现什么。

最佳答案

Windows Azure 网站使用 IISNode 在 IIS 内托管 Node 进程。您的 Node 站点实际上有一个接收传入请求的命名管道,而不是像您在本地运行或托管自己时使用的 TCP 端口。即使您可以打开 TCP 端口,Azure 网站实际上也仅适用于传统网站,无法向外界开放端口。

如果您正在寻找这种类型的控件,您可能需要考虑虚拟机。它们提供了更大的灵 active ,但代价是您必须进行更多设置。使用虚拟机,您可以打开您选择的端口。

此外,您还可以利用云服务来满足您的需求。这是post about How to deploy multiple node apps in the same Azure instance供您引用。

关于node.js - Node 上有 2 个不同的端口,带有 azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395424/

相关文章:

node.js - 使用 sequelize 在 nodejs 中创建 "dynamic query"?

node.js - 安装了 NodeJs 但无法执行。用 bash 脚本搞砸了

javascript - 如何处理未处理的拒绝SequelizeConnectionError : connect ETIMEDOUT

c - 无法将一个客户端收到的消息发送到连接到服务器的所有其他客户端

c - 用于确定进程拥有的套接字的 Linux API

python - 让Python Socket服务器更高效

azure - 为什么 ADAL token 返回的 token 显示对 Postman 发出的请求未经授权?我该如何解决?

javascript - 所以我不能将 Infinity 作为数字放入 JSON 中,可以吗?

azure - 从另一个 Azure Active Directory 租户中的应用访问 Azure Key Vault

azure - 支持 Azure RDMA 的 SLES 群集上的 DAPL 错误