GET http:// localhost:3000 / socket.io / socket.io.js 404(Not Found)

我正在尝试将数据传输到浏览器。 然而,我正在努力将其连接到浏览器。 这是我的html:

<ul class="tweets"></ul> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(); jQuery(function ($) { var tweetList = $('ul.tweets'); socket.on('tweet', function (data) { tweetList .prepend('<li>' + data.user + ': ' + data.text + '</li>'); }); }); </script> 

这里是我的app.js的相关部分:

 var express = require('express') , twitter = require('ntwitter') , http = require('http') , path = require('path'); var app = express(); var io = require('socket.io').listen(app); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); io.sockets.volatile.emit('tweets', { user: data.user.screen_name, text: data.text, geo : geo, latitude: latitude, longitude: longitude }); 

我通过我的packages.json文件安装了socket.io 0.9.16:

 "dependencies": { "express": "3.2.6", "jade": "*", "ntwitter":"0.2.10", "socket.io":"0.9.x" } 

有人可以帮我从这里出去吗? 为什么找不到该文件?

挖深一点。 为了testing套接字,我把它放在了app.js中:

 var socket = io.listen(app); 

我得到的错误:

 TypeError: Object #<Manager> has no method 'listen' at Object.<anonymous> (/home/andy/dev/node/mytwittermap/app.js:49:17) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3 

你可以试试这个吗?

 http = require('http'); var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); 

我想,你将不得不实例化socketio服务器。

你的设置需要如下所示:

 var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); ... server.listen(app.get('port')); // not 'app.listen'!