我正在尝试通过运行以下命令来与crontab配合使用:node / home /.../ test-reset.js:
const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
process.exit(1);
它关闭而不发送'message'命令。
然后我对此进行了测试:
const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
setTimeout( function() { process.exit(1); } , 2000);
这里效果很好,但是我不喜欢setTimeout的这种做法。 您不知道没有setTimeout即可干净退出吗?
我想在脚本启动并执行后将其关闭。
谢谢。
答案 0 :(得分:1)
您要发送带有确认的邮件:
socket.emit('message', 'reset', () => {
process.exit(1);
});
socket.emit(eventName[, …args][, ack])
:
ack参数是可选的,将与服务器答案一起调用。
这应该在成功执行发射并收到确认后立即调用回调。
在接收端,您需要:
socket.on('message', (val, fn) => {
fn();
});