见图:

从图表可以理解:
服务端,如果关闭监控,那么客户端立刻就不能获取网络的状态,因为链接没有改变;
通常情况下,我们希望客户端可以实时监控到服务器当前网络状态,确保自动重连或者监控网络的状态变化;
因此服务器端需要优雅关闭网络连接之后,然后等待一些时间延时,确保客户端都能够有足够的时间处理问题。
例如:

客户端需要接受三个消息:

这样客户端才能够监控到服务器端网络的状态变化,然后及时捕获,进入正常的业务流程。
我处理的思路:
1、客户端创建一个网络连接定时器,连接成功定时器关闭;
2、当出现网络异常(服务器不能立刻关闭监听,先关闭链接,等待一些时间)触发消息,进入消息槽,异常消息顺序:Error ,StateChange,OnDisconnect;
3、在OnDisconnect槽内,激活网络连接定时器,进入定时尝试连接的状态;