Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Next.js&;Socket.io ECONNRESET_Javascript_Node.js_Sockets_Next.js - Fatal编程技术网

Javascript Next.js&;Socket.io ECONNRESET

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

在过去的几个月里,我一直在开发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_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文件和应用程序源代码

有人知道是什么导致了这个问题吗?我的第一个假设是进程无限期地运行或某种内存泄漏,但我无法确认。我注意到的唯一一件事是节点总是在运行,当我结束进程时,它会重新启动,尽管没有节点实例在运行