client node 观察者模式