javascript - Express js和socket io端口3000已经是

标签 javascript node.js express socket.io

我正在尝试遵循有关如何将socket.io与express.js框架和node.js一起使用的教程。

我遵循的每个教程都建议我使用以下行在 app.js 中建立连接

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


io.on('connection', function(client) {
   console.log('Client connected...');

   client.on('join', function(data) {
     console.log(data);
  });
})

如果我使用 3000 以外的端口,则此方法有效,我必须在 http://localhost:3000/ 上运行我的应用程序。我收到端口 3000 已在使用中的错误。

经过调试并查看代码后,我想我知道为什么会发生这种情况。在 ./bin/www.js 文件(由express js 自动创建)中,我们有以下几行:

/**
* Get port from environment and store in Express.
*/

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server = http.createServer(app);
server.listen(port);

但我不知道如何在我的 app.js 中使用相同的端口重用这个创建的服务器。我对 Node.js 完全陌生。如何在express框架上正确设置socket io?

最佳答案

您好,请将您的 server.listen 放在套接字连接之后,如下所示

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

io.on('connection', function(client) {
   console.log('Client connected...');

   client.on('join', function(data) {
     console.log(data);
  });
})
server.listen(3000);

我希望这会起作用。谢谢

关于javascript - Express js和socket io端口3000已经是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590619/

相关文章:

javascript函数防止默认问题

javascript - 用户断开连接后删除 Canvas 和套接字 IO 中的形状

javascript - 使用 sequelize 中的 where 条件根据距离进行过滤

javascript - Node.js 表单验证无法读取未定义的属性 'profileimage'

javascript - 从安全 Angular 来看,本地存储相对于 Cookie 有何优势?

javascript - 如何添加进度条

javascript - 无法将图像标题形式的 bxslider 显示在 slider 外部的自己的 div 中

javascript - 无法使用 Sinon 在导入的文件中 stub 函数调用

javascript - 在 Passport.authenticate 中调用 next() 方法时出错 ('local' )

javascript - 使用 express js、passport s 的安全 GraphQL 查询