Node.js 为什么socket.io需要一个新的侦听器

Node.js 为什么socket.io需要一个新的侦听器,node.js,sockets,express,Node.js,Sockets,Express,我知道这可能是一个愚蠢的问题,但我确实希望我能通过noob,但我使用的是带有节点js和mongodb的express框架。为什么您总是要创建一个新的服务器,以便从客户端连接它 1. server side: var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); server.listen(8000); 2. Client side

我知道这可能是一个愚蠢的问题,但我确实希望我能通过noob,但我使用的是带有节点js和mongodb的express框架。为什么您总是要创建一个新的服务器,以便从客户端连接它

1. server side:

var app = express();

var server = http.createServer(app);

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

server.listen(8000);



2. Client side:

    var socket = io.connect('`http://localhost:8000`');
    socket.on('connect', function () {
      socket.emit('set nickname', confirm('Connected'));
    });
通常我现在会使用localhost:/3000,为了连接到服务器,我必须使用localhost:/8000。没有办法使用默认的3000,但这总是会引发一个错误:

events.js:72
        throw er;
问候


p、 s我对此很陌生,我也在阅读教程,但我似乎不明白为什么会这样,请有人解释一下

您的代码中是否需要http,express? 可能是另一个运行在8000上的应用程序

此外,可能缺少一些听众:

io.on('connection', function (socket) {
    console.log('a user connected');
    socket.emit('connect');
});

不清楚失败的代码是否与8000替换为3000的代码相同(这对我来说没有问题)。你能证实吗?