【发布时间】:2019-04-23 19:38:34
【问题描述】:
我正在尝试通过多个节点脚本导出 socket.io 服务器,这样我就可以在同一个端口上发出通知。
这是我的主要 server.js 文件代码:
var express = require('express'),
app = module.exports.app = express();
const options = {};
var server = http.createServer(app);
var io = require('socket.io').listen(server);
exports.io = io;
server.listen(3000, function() {
console.log('Node.js Global app is running...');
});
当我尝试要求 server.js 时,其他节点脚本正在运行,我收到此错误:
错误:监听 EADDRINUSE 0.0.0.0:3000
server_tn.js
var express = require('express'),
app = module.exports.app = express();
var code_pays = path.basename(__dirname);
console.log('Node.js app is running...' + code_pays);
var main = require('./../main.js');
var importIo = require('./../server');
var io = importIo.io;
main.mainTraitement(code_pays);
【问题讨论】:
-
您正在导出网络服务器,而不是网络服务器的实例。您可能想共享一个实例。顺便说一下,您应该使用请求来访问您的网络实例,这是我认为最可重用的方式。
-
是否可以导出网络服务器实例?
-
在打开无用线程之前搜索呢? stackoverflow.com/a/28051798/8126612
-
问题是当我需要 socket.io 使用
var io = require('socket.io')(3000);我得到错误Error: listen EADDRINUSE :::3000