再上一遍文章的最后提到了两个问题。
1.eventThread怎么处理事件的。
2.eventThread怎么实现异步回调。
下面一块分析一下两个问题,以及watch机制及异步回调的原理。
主要分为以下三部分内容:
- watch事件的触发
- 回调事件
- 客户端和服务端断连后,事件恢复
- 服务端的事件处理
1、watch事件的触发。
在readResponse中,当ReplyHeader的xid是NOTIFICATION_XID = -1时,代表客户端接收到的是来自服务端的一个事件通知。
LOG.debug("Got notification session id: 0x{}", Long.toHexString(sessionId));