zoukankan      html  css  js  c++  java
  • 服务端处理 Watcher 实现 ?

     

    1、服务端接收 Watcher 并存储 

    接收到客户端请求处理请求判断是否需要注册 Watcher,需要的话将数据节点 

    的节点路径和 ServerCnxn(ServerCnxn 代表一个客户端和服务端的连接实现 

     Watcher  process 接口此时可以看成一个 Watcher 对象存储在 

    WatcherManager  WatchTable  watch2Paths 中去

    2、Watcher 触发 

    以服务端接收到 setData() 事务请求触发 NodeDataChanged 事件为例

    2.1 封装 WatchedEvent

    将通知状态(SyncConnected)、事件类型(NodeDataChanged)以及节点路 

    径封装成一个 WatchedEvent 对象 

    2.2 查询 Watcher

     WatchTable 中根据节点路径查找 Watcher

    2.3 没找到说明没有客户端在该数据节点上注册过 Watcher

    2.4 找到提取并从 WatchTable  Watch2Paths 中删除对应 Watcher(从这里 

    可以看出 Watcher 在服务端是一次性的触发一次就失效了

    3、调用 process 方法来触发 Watcher

    这里 process 主要就是通过 ServerCnxn 对应的 TCP 连接发送 Watcher 事件通知

    Java Program!
  • 相关阅读:
    Java消息队列-Spring整合ActiveMq
    控制 Memory 和 CPU 资源的使用
    真的了解js生成随机数吗
    vue原来可以这样上手
    Weex系列一、构建Weex工程
    MS Word 目录排版
    mac上使用终端编译omp代码
    x的平方根
    如何进行特征选择
    单词模式
  • 原文地址:https://www.cnblogs.com/programb/p/13005160.html
Copyright © 2011-2022 走看看