socket.io-管理服务器和连接

时间:2018-07-16 08:08:09

标签: node.js express web-applications websocket socket.io

我是Java脚本和Web应用程序的新手。我正在尝试创建一个Web应用程序。 我使用socket.io 2.1.1创建websocket。

var app = require('../app');
var https = require('https');


 var server = https.createServer({
 key: fs.readFileSync(__dirname + '/../../host.key'),
 cert: fs.readFileSync(__dirname + '/../../host.cert')
 },
 app);


var io = require('socket.io')(server);

我需要根据收到的事件来阻止或恢复接受连接。

something.on('block',()=>{
  //block all incomming connections and terminate all existing connections
  io.close();
});
something.on('resume',()=>{
// i have not code for this case
});

我的问题是关闭服务器io.close()后我不知道如何恢复它。

我试图创建一个新服务器,但是它不起作用,并且客户端没有连接到服务器。

something.on('resume',()=>{
 io = require('socket.io')(server);
// not work , client do not connect
});

我如何恢复服务器?




更新

我了解到io.close();之后,Express Web服务器也关闭了。(因为我使用了角度cli,所以我没有感觉到Express Server已关闭)
我通过创建一个新的express和一个socket.io来解决我的问题,并从头开始对其进行初始化,但是我不确定这是最好的解决方案。有一个更好的主意吗?

1 个答案:

答案 0 :(得分:0)

如果这不是键入错误,您只是忘了再次激活套接字:

something.on('resume',()=>{
  io = require('socket.io')(server); 
  io.on('connection',
    socketData => {
      console.log(`Connected again`)
    }
  )
)