我正在制作一个使用nodejs,mongodb,socket.io,express和mongoose的web应用程序。
当浏览到我的本地主机时,我可以启动我的服务器,并在浏览器中正确地获取所需的html文件。
我的问题是让我的socket.io工作。 在我的服务器端一切正常:我的终端上得到“info - socket.io started”。找不到socket.io.js
但冲浪到我的浏览器,当我得到这个在我的浏览器控制台
Failed to load resource: the server responded with a status of 404 (Not Found)
Uncaught ReferenceError: io is not defined
这是我如何连接到socket.io.js
<script src="/socket.io/socket.io.js"></script>
,我的地图结构看起来像这个:
map
-app.js
-public
--index.html
-node_modules
--socket.io
--mongodb
--express
--jade
--mongoose
有没有人知道mistak e是我做的?
(它实际上是同样的问题在这里:Node.js socket.io.js not found or io not defined)
提前感谢!
编辑: 我在服务器端的代码是这样的:
var app= require('express').createServer();
var io = require('socket.io').listen(app);
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/db');
app.listen(3030);
console.log("server started");
app.get('/',function(req,res){
res.sendfile(__dirname + '/public/index.html');
});
io.sockets.on('connection',function(socket){
console.log("connection made");
});
的第一个日志,在终端得到记录(“服务器启动”),但第二个(“连接造” )不会被记录。所以连接不成。 我以为这是因为我的客户端“设置”错误。
如果它是为[Node.js的socket.io.js找不到或IO同样的问题没有定义](http://stackoverflow.com/questions/10563080/node-js-socket-io-js-not-found-or-io-not-defined),你有没有尝试过这个问题的答案? – phihag 2012-08-13 17:19:03
你可以在服务器端发布有关Socket.IO安装的代码吗?这里的典型问题是Socket.IO没有监听文件请求(也就是设置错误)。没有看到你的代码,我们不能排除这一点。 – 2012-08-13 17:21:00
对我而言,这通常是由于未在域的根目录下运行应用程序造成的。这意味着这工作正常(http://domain.com),但这会导致404客户端代码没有一些修改(http://domain.com/path/to/app/。 – 2012-08-13 17:44:14