我仍然没有第二个查询的答案,但是对于第一个查询,zookeeper服务器设计为只在第一次发生更改时发送事件,然后删除开关。为了继续接收事件,我不得不在处理触发的事件时再次设置一个手表。下面是我的代码:
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.");
var watch = function(event) {
console.log("Got event: %s.", event);
client.getData(path, watch, getDat);
};
var getDat = function(error, data, stat) {
if (error) {
console.log(error.stack);
return;
}
console.log("Got data: %s", data.toString("utf8"));
};
client.getData(path, watch, getDat);
// client.close();
});
client.connect();