找不到socket.io.js

时间:2012-08-13 17:17:21

标签: node.js socket.io

我正在制作一个使用nodejs,mongodb,socket.io,express和mongoose的网络应用程序。
我可以启动我的服务器,并在浏览到我的本地主机时在我的浏览器中正确获取所需的html文件 我遇到的问题是让socket.io工作。 在我的服务器端,一切正常:我的终端上有“info - socket.io started”。

但是当我浏览我的浏览器时,我会在浏览器控制台中找到这个<

    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

有谁知道我犯了什么错误?

(它实际上与此处的问题相同: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");
    });

第一个日志记录在终端中(“服务器已启动”),但第二个日志(“连接已建立”)未记录。所以没有建立连接。 我认为那是因为我的客户端错误的“设置”。

2 个答案:

答案 0 :(得分:2)

查看快速迁移指南2-&gt; 3 https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x 这样的事情应该有效

 var express = require('express');
 var app = express();
 var http = require('http');
 var server = http.createServer(app);
 var io = require('socket.io').listen(server);
 var mongoose = require('mongoose');
 var db = mongoose.connect('mongodb://localhost/db');

 server.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");
 });

答案 1 :(得分:-1)

var app = express();
app.set('port', process.env.PORT || 3000);

...

var server = http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

var io = socket.listen(server);
io.sockets.on('connection', function () {
  console.log('hello world im a hot socket');
});