public Server(string Connstring, int SessionTimeout = -1) { var watcher = new SingleWatcher(); watcher.RunProcess = new Action <WatchedEvent>((e) => { if (e.getState() == Watcher.Event.KeeperState.Disconnected) { Conneted = false; //zookeeper断开处理 } }); //初始化客户端 _client = new ZooKeeper(Connstring, SessionTimeout, watcher, false); Conneted = true; //初始化root节点 OpenNode("/ZooDiscovery"); }
public Client(string Connstring, int SessionTimeout = -1) { var watcher = new SingleWatcher(); watcher.RunProcess = new Action <WatchedEvent>((e) => { if (e.getState() == Watcher.Event.KeeperState.Disconnected) { Conneted = false; //zookeeper断开处理 } var path = e.getPath(); //监听处理 switch (e.get_Type()) { case Watcher.Event.EventType.None: break; case Watcher.Event.EventType.NodeCreated: break; case Watcher.Event.EventType.NodeDeleted: SrvDeleted?.Invoke(path.Substring(path.LastIndexOf("/") + 1)); break; case Watcher.Event.EventType.NodeDataChanged: var api = GetServer(path.Substring(path.LastIndexOf("/") + 1), false); SrvChanged?.Invoke(path.Substring(path.LastIndexOf("/") + 1), api); break; case Watcher.Event.EventType.NodeChildrenChanged: FindNewSrv?.Invoke(); break; default: break; } }); //初始化客户端 _client = new ZooKeeper(Connstring, SessionTimeout, watcher, false); Conneted = true; //初始化root节点 OpenNode(Root); }