Javascript Next.js&;Socket.io ECONNRESET
在过去的几个月里,我一直在开发Next.js,反应良好,但是自从尝试实现Socket.io以来,我在服务器初始化之前就开始出现以下错误Javascript Next.js&;Socket.io ECONNRESET,javascript,node.js,sockets,next.js,Javascript,Node.js,Sockets,Next.js,在过去的几个月里,我一直在开发Next.js,反应良好,但是自从尝试实现Socket.io以来,我在服务器初始化之前就开始出现以下错误 Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:205:27) Emitted 'error' event on ClientRequest instance at: at Socket.socketErrorListener (_http_c
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:205:27)
Emitted 'error' event on ClientRequest instance at:
at Socket.socketErrorListener (_http_client.js:426:9)
at Socket.emit (events.js:315:20)
at Socket.EventEmitter.emit (domain.js:482:12)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read'
}
我正在使用自定义服务器,我的索引文件如下所示:
const app = require('express')();
const server = require('http').createServer(app);
global.io = require('socket.io')(server);
const next = require('next');
const ip = require('ip');
const bonjour = require('bonjour')();
const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();
io.on('connection', socket => {
global.socket = socket;
console.log('Connection');
socket.on('streamCastLogs', () => {
castLogger.stream({ start: -1 }).on('log', function (log) {
global.socket.emit('castLog', { message: log.message, timestamp: log.timestamp });
});
});
});
nextApp.prepare().then(async () => {
const port = config.get('port').value();
app.all('*', (req, res) => { .... }
server.listen(port, err => {
if (err) throw err;
// Publish a bonjour service
const service = bonjour.publish({
name: 'Assistant Relay',
host: 'ar.local',
type: 'http',
port: port,
});
console.log(
chalk.green.bold(
`Visit http://${ip.address()}:${port} or http://${
service.host
}:${port} in a browser to configure`,
),
);
});
});
我已经尝试注释掉所有套接字功能,但是仍然出现错误,无法启动服务器。如果我重新启动我的机器,我可以让它运行起来,但是错误会在某个时候再次出现
如果需要更多代码,可以找到我的完整index.js文件和应用程序源代码
有人知道是什么导致了这个问题吗?我的第一个假设是进程无限期地运行或某种内存泄漏,但我无法确认。我注意到的唯一一件事是节点总是在运行,当我结束进程时,它会重新启动,尽管没有节点实例在运行