1 单例模式


1.1 Netty 实例

1.1.1 ReadTimeoutException


可以看出,构造器私有,防止随意创建
static保证延迟加载

1.1.2 MqttEncoder

2 策略模式




3 装饰者模式


Netty 实践




4 观察者模式

4.1 常规操作






4.2 Netty 的实践

  • 在调用 writeAndFlush 后,其实返回的就是被观察者ChannelFulture
  • 添加观察者


    下面让我们深入writeAndFlush 看看
  • 从 pipeline 开始传播
  • 从 tail节点从后往前进行传播
  • promise就是被观察者



    下面看看添加观察者的源码实现~