watcher 机制主要提供了服务通知功能
Watche的分类
客户端三类,服务端两类
- dataWatches:表示监听的是某节点的数据变化,比如数据的新增、修改、删除
- childWathes:表示监听的是某节点的孩子节点的变化,如果某个节点新增或删除了,会触发其父节点上的NodeChildrenChanged事件
- existWatches(只在客户端):服务端无需单独触发该事件,由客户端接收其他事件自己判断,比如客户端接收到一个NodeCreated事件,客户端如果注册了existWatches,那么existWatches就会被触发。
不同的Watcher事件类型会触发哪些Watche
- None
-
- defaultWatcher
- 所有dataWatches(触发完可能清空)
- 所有existWatches(触发完可能清空)
- 所有childWatches(触发完可能清空)
- 所有的persistentWatches
- 所有的persistentRecursiveWatches
- NodeDataChanged
- NodeCreated