Node-SocketIO以编程方式强制重启已损坏的套接字

时间:2015-03-03 00:34:11

标签: javascript node.js socket.io reboot intel-edison

我有基于1到1个客户端和服务器nodejs的应用程序。 nodejs在Linux(英特尔Edison)上运行。我想要做的是让Linux服务器在套接字断开时自动重启。这可能吗?

这是我的简单node-socketIO服务器

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
      console.log(msg)
    io.emit('chat message', msg);
  });

  socket.on('disconnect', function(){
      //how to programmatically reboot?
          console.log('user disconnected');
      });
});

http.listen(3000, function(){
  console.log('listening on *:3000 yeah');
});

1 个答案:

答案 0 :(得分:0)

你试过reboot(npm)

吗?

安装:

npm install reboot

用法:

调用sync()然后重启:

require('reboot').reboot();

重新启动而不同步():

require('reboot').rebootImmediately();

还设置权限: 权限

如果要在非超级用户下运行节点进程,请务必授予节点权限以重新启动系统:

sudo setcap CAP_SYS_BOOT=+ep /usr/local/bin/node