我正在尝试遵循有关如何将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/