Node.js 得到http://localhost:3000/socket.io/socket.io.js 404(未找到)

Node.js 得到http://localhost:3000/socket.io/socket.io.js 404(未找到),node.js,socket.io,Node.js,Socket.io,我正在尝试将数据流传输到浏览器。然而,我正在努力将它连接到浏览器。这是我的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> <scrip

我正在尝试将数据流传输到浏览器。然而,我正在努力将它连接到浏览器。这是我的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>
我通过packages.json文件安装了socket.io 0.9.16:

"dependencies": {
    "express": "3.2.6",
    "jade": "*",
    "ntwitter":"0.2.10",
    "socket.io":"0.9.x"
  }
有人能帮我吗?为什么找不到文件

再挖深一点。为了测试套接字,我将其放在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
TypeError:对象#没有方法“listen”
反对。(/home/andy/dev/node/mytwittermap/app.js:49:17)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:901:3
你能试试这个吗:

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

var io = require('socket.io').listen(server);

我想,您必须实例化socket.io服务器。

您的设置需要如下所示:

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

// your code

// at the bottom of app.js
server.listen('3000', () => {
  console.log('Server listening on Port 3000');
})
  • 您需要实例化socket.io连接和
  • 您需要使用
    server.listen()
    而不是
    app.listen()
试着这样做:

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

// your code

// at the bottom of app.js
server.listen('3000', () => {
  console.log('Server listening on Port 3000');
})

好极了-现在看来可以正常工作了(控制台中有很多很好的调试信息)。现在了解为什么它不显示在浏览器中。非常感谢您的帮助。谢谢,您的台词://不是“app.listen”!“帮助很大!!感谢您在这里发布的2016年“非应用程序。聆听”。我也犯了同样的错误。详细信息已更改,但我们需要执行的部分
server.listen
(不在应用程序上)仍然有效。谢谢@sra你能看看我刚贴的这个吗?(socket.io)。侦听不起作用,必须直接键入(socket.io)(服务器)