Expressjs代码: -
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'));
var io = require('socket.io').listen(app.listen(app.get('port')));
给出错误: -
info - socket.io started
warn - error raised: Error: listen EADDRINUSE
错误是因为我在同一个端口上设置了app.listen和io.listen吗?我想运行一个Web服务器并允许它使用socket.io与服务器通信。
答案 0 :(得分:2)
是的,问题是你正试图让两个独立的服务器在同一个端口上侦听。
您可以使用以下命令将Express和socket.io
组合在同一个端口上:
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'));
var io = require('socket.io').listen(server);