【问题标题】:socket.io - manage server and connectionssocket.io - 管理服务器和连接
【发布时间】:2018-12-23 17:33:08
【问题描述】:

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

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 server也关闭了。(因为我使用angular cli,我没有感觉到express server被关闭了)
我通过创建一个新的 express 和一个 socket.io 并从一开始初始化它们来解决我的问题,但我不确定这是最好的解决方案。有没有更好的主意?

【问题讨论】:

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


    【解决方案1】:

    如果这不是类型错误,您只是忘记再次激活套接字:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2013-01-30
      • 2019-10-09
      相关资源
      最近更新 更多