我有这个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 ,我需要一些方法让网络应用程序在不运行虚拟机的情况下完成这两项工作,我不完全确定天蓝网络应用程序中的所有功能。
答案 0 :(得分:1)
Windows Azure网站使用IISNode在IIS内部托管Node进程。您的Node站点实际上是一个命名管道,它接收传入的请求,而不是像在本地运行或自己托管时使用的TCP端口。即使你可以打开一个TCP端口,Azure网站实际上只适用于传统网站,而且没有办法向外界开放端口。
如果您正在寻找这种类型的控件,您可能需要查看VM。它们提供了更大的灵活性,但代价是您需要进行更多设置。使用VM,您可以打开您选择的端口。
此外,您可以利用Cloud Service来满足您的要求。这是post about How to deploy multiple node apps in the same Azure instance供您参考。