1

ファイルの変更を監視するアプリケーションがあります。ファイルが変更されると、すべてのsocket.ioクライアントにイベントが発行されます。コードは次のとおりです。

io.sockets.on('connection', function(socket) {
    fs.watchFile('./file.txt', {persistent:true}, function(data) {
        socket.emit('server', {message: 'File changed'});
    });
});

私の質問は、上記のコードがsocket.ioクライアント接続と同じ数のファイル監視プロセスを実行するというのは本当ですか?

ありがとうございました。

4

1 に答える 1

5

はい、クライアントがサーバーに接続するたびにコードが実行fs.watchFile()されますが、代わりに試すことができます。

io.sockets.on('connection',function(socket){
 socket.emit('server',{message:'hello'});
});

// the code below will check for change every 100secs and emit a message to all clients of / , and inform that the file has changed
fs.watchFile('FILEPATH', {
    persistent: true,
    interval: 100000,
  },
  function(data) {
    io.emit('server', { message:'FileChanged' });
  },
)
于 2013-03-25T08:45:19.267 に答える