我是Node.js的新手,并试图为自己构建一个应用程序。我正在使用socket.io,它在测试期间在本地工作得非常好,但是当我部署到Azure时,我一直在
http://domain/socket.io/socket.io.js 404 (Not Found)
我尝试过在论坛上找到的大多数方法和修复程序,但似乎没有任何工作,Azure上启用了Web套接字。
我的代码如下:
客户端:
<script src="/socket.io/socket.io.js"></script>
服务器端
var express = require('express');
var port = process.env.port || 1337;
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server, { log: false });
server.listen(port);
非常感谢任何帮助,提前谢谢。
答案 0 :(得分:2)
你是如何包含模块的?
最简单的方法是创建一个package.json文件(npm init
),然后将其包含在app.js旁边。
请参阅http://www.windowsazure.com/en-us/documentation/articles/nodejs-use-node-modules-windows-azure-apps/
答案 1 :(得分:1)
要使其正常工作,请尝试配置socket.io客户端和服务器以强制执行xhr-polling传输。默认情况下,socket.io首先尝试websockets,并且它们需要为在iisnode下运行的Node.js应用程序进行一些自定义配置(例如在Windows Azure网站中)。
在Windows Azure网站中使用WebSockets运行socket.io应用程序需要一些特殊配置:http://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html。
有关代码示例,请参阅https://github.com/tjanczuk/dante。
答案 2 :(得分:0)
Windows Azure有三种不同的计算方法,您可以在其中部署此应用程序,是否可以澄清您要部署到哪个?云服务,虚拟机或网站。
另外,你可以发布你的web.config文件吗?
答案 3 :(得分:0)
为了使它在azure网站上运行,如果你在azure上启用了websockets,我到目前为止唯一能解决的问题就是添加一个web.config来添加:
<webSocket enabled="false" />