0

我对 node js 和 socket.io 非常陌生。我正在将 socket.io 用于 Windows azure 项目。我创建了一个启动 socket.io 服务器的 App.js,但我不知道如何以编程方式运行该脚本。我能够从命令提示符(如“node app.js”)运行该脚本,并且 socket.io 服务器启动并且客户端应用程序能够与 socket.io 服务器很好地交互。

我也可以去 127.0.0.1/App.js 和 socket.io 服务器启动。

但是我希望脚本在我在 VS 中启动项目后立即自动运行。关于我该怎么做的任何想法?

编辑:

原来iisnode可以处理所有事情,我只需要在web.config中放置一个重写代码。从这里http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/的示例 azure node js 应用程序我得到了这个重写代码

<rewrite>
  <rules>
    <clear />
    <rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
      <match url="iisnode.+" negate="true" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="App.js" />
    </rule>
  </rules>
</rewrite>

它会自动启动 App.js,但会将我的所有视图重新定向到 App.js 脚本。我想这与我上面写的重写代码有关。我应该进行哪些更改才能让 App.js 在启动时运行并且仍然能够访问我的其他 html 视图?

谢谢

4

4 回答 4

1

好吧,根据您使用 socket.io 的原因,工作者角色可能更适合。WebRole 目前不支持 WebSockets,因此如果您使用 Web 角色,则需要将传输设置为仅 xhr-polling。

如果您只是对 Web 角色感兴趣,还可以考虑使用 azure 网站来托管您的应用程序。您可以查看我的示例存储库,其中包含一个可以直接部署到 azure 网站的 socket.io 聊天应用程序:

http://github.com/markcowl/WebChatDefault-1

于 2013-03-14T03:38:23.640 回答
0

本教程是在 Azure 上构建和部署 nodeJS 应用程序的分步指南http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/

于 2013-03-06T16:23:01.417 回答
0

你有没有改变你的处理程序“iisnode”?

<!-- indicates that the server.js file is a node.js application 
to be handled by the iisnode module -->
<handlers>
  <add name="iisnode" path="App.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
  <rules>
    <clear />
    <rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
        <match url="iisnode.+" negate="true" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
        <action type="Rewrite" url="App.js" />
    </rule>
  </rules>
</rewrite>

并在 .csdef 中编辑 WebRole 的任务:

<Task commandLine="node.cmd ..\App.js" executionContext="elevated" />
于 2013-03-13T15:08:12.547 回答
0

您需要在运行 node.js 的服务定义中设置一个入口点,然后当您在模拟器中运行项目时,它会自动启动,例如:

请注意,您不必节点应用程序使用 vs,您可以使用 Windows Azure PowerShell 设置节点辅助角色来托管您的应用程序,请参阅:

http://www.windowsazure.com/en-us/develop/nodejs/tutorials/app-using-socketio/

有关使用 PowerShell 设置 socket.io 应用程序的教程

于 2013-03-13T00:01:11.713 回答