【问题标题】:2 different ports on node, with azure节点上有 2 个不同的端口,带有 azure
【发布时间】:2018-05-15 03:46:55
【问题描述】:

我有这个 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 上浏览此文件夹资产,但要访问/socket.io/socket.io.js 目录,我必须使用localhost:3001 这是执行我们想要的任务的代码结构的一部分。

我已经通过了很多节点和天蓝色的实验室,但他们都没有做这个特定的设置,如果我去命令提示符并在本地运行 app.js,我的网络应用程序在线再次工作,所以我假设端口 3001 在我的机器上本地打开,而 azure 托管 3000,我需要一些方法来使 web 应用程序在不运行 VM 的情况下同时执行这两项操作,我不完全确定 azure web 应用程序中的所有可能。

【问题讨论】:

    标签: node.js sockets azure


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多