我是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来解决我的问题,并从头开始对其进行初始化,但是我不确定这是最好的解决方案。有一个更好的主意吗?
答案 0 :(得分:0)
如果这不是键入错误,您只是忘了再次激活套接字:
something.on('resume',()=>{
io = require('socket.io')(server);
io.on('connection',
socketData => {
console.log(`Connected again`)
}
)
)