Я пишу клиент ZooKeeper для мониторинга узла.Функция обратного вызова вызывается только при первом изменении данных узла.Я не уверен, почему функция не выполняется при втором изменении.
Второй запрос - моя программа завершается, если я раскомментирую последнюю функцию close()
.В качестве хорошей практики я должен использовать функцию close()
, но тогда она не переходит в состояние блокировки для прослушивания входящих событий.Как мне этого добиться?Я прочитал документацию, но не смог найти ничего полезного.
var zookeeper = require("node-zookeeper-client");
var client = zookeeper.createClient("192.168.43.172:2181");
var path = process.argv[2];
client.once("connected", function() {
console.log("Connected to the server.");
client.create(path, new Buffer("data"), function(error) {
if (error) {
console.log("Failed to create node: %s due to: %s.", path, error);
} else {
console.log("Node: %s is successfully created.", path);
}
});
client.getData(
path,
function(event) {
console.log("Got event: %s.", event);
},
function(error, data, stat) {
if (error) {
console.log(error.stack);
return;
}
console.log("Got data: %s", data.toString("utf8"));
}
);
//client.close();
});
client.connect();