Socket.io:net :: ERR_CONNECTION_CLOSED

时间:2017-06-08 12:24:11

标签: express socket.io

我正在尝试在我的网站上设置socket.io但是服务器会记录一个错误,说该端口已经在使用(我将其设置为与我的服务器相同)。我正在使用Express。

如果我将其设置为其他端口,则会出现'net :: ERR_CONNECTION_CLOSED'错误。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可能正在创建(显式或隐式)应该侦听同一端口的两个单独的HTTP服务器实例,因此第二个实例将抛出错误,因为第一个实例已经占用了端口。

相反,您可以在Express和socket.io之间共享同一个HTTP服务器,因此只有一个HTTP服务器可以同时处理这两个:

const express  = require('express');
const app      = express();
const server   = app.listen(3000); // or whatever port you want
const io       = require('socket.io')(server);

app.listen(...)返回Express将为您创建的HTTP服务器实例。您可以通过将该实例传递给它的构造函数(由socket.io返回)来重用require('socket.io')的实例。