对节点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中添加重写代码。从示例azure节点js应用程序http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/我得到了这个重写代码
<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视图?
由于
答案 0 :(得分:1)
那么,根据您使用socket.io的原因,工作者角色可能更合适。 WebRocket目前不支持WebSockets,因此如果您使用了Web角色,则需要将传输设置为xhr-polling。
如果您只对网络角色感兴趣,也可以考虑使用azure网站托管您的应用。你可以查看我的样本仓库,它有一个可以直接部署到azure网站的socket.io聊天应用程序:
答案 1 :(得分:0)
本教程是在Azure http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/上构建和部署nodeJS应用程序的分步指南
答案 2 :(得分:0)
你需要在运行node.js的服务定义中设置一个入口点,然后当你在模拟器中运行项目时,它会自动旋转,有些像是:
请注意,您没有 使用vs作为节点应用,您可以使用Windows Azure PowerShell设置节点工作者角色来托管您的应用,请参阅:
http://www.windowsazure.com/en-us/develop/nodejs/tutorials/app-using-socketio/
使用PowerShell设置socket.io应用程序的教程
答案 3 :(得分: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" />