不得不说踩了无数坑才知道什么是真尼玛坑!!!你以为
mConnection != null 且 mConnection.isConnected() 且 mConnection.isAuthenticated())
mConnection != null && mConnection.isConnected() && mConnection.isAuthenticated())
就成功连上了吗?错错错,大错特错,一个测试场景是当我关掉我的服务器上的WiFi,客户认为它仍然是相连的,因为isconnected()方法返回true。不但如此,ConnectionListener 也没有任何回调,你以为状态没有任何改变,依然连上状态,最可恶的是自带的重连也不会执行,如下代码写了也白写
ReconnectionManager reconnectionManager = ReconnectionManager.getInstanceFor(mConnection);
reconnectionManager.setFixedDelay(3);//重联间隔3秒
reconnectionManager.enableAutomaticReconnection();//开启重联机制
根本没有任何卵用,你很难发现任何问题,你会自信的以为我的绝对没有问题,可是就是掉线了!!!!
本文通过一个具体测试场景揭示了网络连接判断中的误区。即使mConnection不为空且isConnected()方法返回true,连接仍可能失效。文章指出,当服务器WiFi关闭时,客户端会误判连接状态,且ConnectionListener不会回调,内置重连机制亦失效。因此,需采用更稳健的方法来验证连接状态。

4028

被折叠的 条评论
为什么被折叠?



