【问题标题】:How to deploy a socket.io node.js application on windows azure?如何在 Windows azure 上部署 socket.io node.js 应用程序?
【发布时间】:2013-08-21 22:58:52
【问题描述】:

我正在构建主要基于 .NET 的 windows azure 应用程序,但我还必须使用 node.js 构建一个 socket.io 服务器,因此我需要部署一个 socket.io 服务器并使用这个 socket.io url在我的 .NET 应用程序中连接。

我遵循here 列出的所有步骤。而且我能够让 socket.io 在我的本地运行,但是当我部署到云时,它没有启动。请在下面找到 socket.io 的代码 sn-p

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

server.listen(4001);

当我在本地模拟器中托管它时,127.0.0.1:81 在我的浏览器中指向它

但是 127.0.0.1:4001 在浏览器上显示“Cannot GET /”,这表明 socket.io 服务器正在该 url 上运行。

但是当我将其部署到云时,我得到的截图与托管云服务的 url 上的屏幕截图相同,但在 socket.io 服务器应该启动的端口 4001 上显示页面无法显示。

如果您需要查看任何其他文件,例如 web.config 等,请告诉我。

我一直被这个问题所困扰,它对我的​​项目非常重要,任何建议或想法都将不胜感激。

谢谢

【问题讨论】:

  • 您是否按照此处的所有步骤操作:windowsazure.com/en-us/develop/nodejs/tutorials/…
  • 我按照您提供的链接中的步骤操作并尝试部署教程中提到的相同聊天应用程序,但我仍然收到上面附加的屏幕截图中显示的错误。它在我的本地模拟器上运行良好。会不会是 node.js 版本的问题?我的本地有 8.21,我在 ServiceConfiguration 设置文件中看到 azure 试图在云服务上安装 6.20。有什么想法吗?

标签: node.js azure websocket socket.io iisnode


【解决方案1】:

示例中缺少的重要部分是端口号的设置

var port = process.env.port || 1337;

和 .listen(端口)

当您在 Azure 环境中运行(甚至是模拟的)时,会为您分配端口,端口环境变量会告诉您在哪里。 4001 可能不是分配的端口。

只有当你通过执行运行时才会使用 1337

node server.js

从命令行

【讨论】:

  • 我也试过了,但是如果不提供任何端口号,我就无法连接到普通 url 上的任何 socket.io 服务器。如果我像您提到的那样设置端口号,我猜我在连接时不需要提及任何端口号?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 2012-08-07
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多