安卓IM聊天,动态心跳机制实现

安卓IM聊天,动态心跳机制实现

if (client.isClosed()) {
                        reconnectWs();
                        infoAlarm = infoAlarm + "__" + "client.isClosed()|reconnectWs重新连接";
                        if (reTryHeardMisTimeCount < 2){
                            //((WechatApplication)getApplication()).ONE_MINUTE = lastHeardMisTime;
                            reTryHeardMisTimeCount++;
                        }else {
                            //连续三次心跳失败,心跳间隔缩短
                            boolean isHaseNet = ping();
                            if (isHaseNet) {
                                ((WechatApplication) getApplication()).ONE_MINUTE = ((HeardMisTime - 3 * addHeardMis) > 3 ? (HeardMisTime - 3 * addHeardMis) : 3) * 1000;
                            }else {
                                //没有网,间隔时间长
                                ((WechatApplication) getApplication()).ONE_MINUTE = 10 * 60 * 1000;
                            }
                            lowShotTimes = true;
                        }
                        Log.i(TAG,"client.isClosed()关闭,重新连接");
                    }else {
                        sendHeardMsg();
                        if (nomolSuccessHeardMisTime != 0 && lowShotTimes == false){
                            //已经存在探测过的时间
                            ((WechatApplication) getApplication()).ONE_MINUTE = nomolSuccessHeardMisTime;
                        }else {
                            if (lowShotTimes == true && lowSuccessCounts < 3) {
                                if (lowSuccessCounts < 3) {
                                    lowSuccessCounts++;
                                } else {
                                    nomolSuccessHeardMisTime = ((WechatApplication) getApplication()).ONE_MINUTE;
                                    lowShotTimes = false;
                                    lowSuccessCounts = 0;
                                    PreferencesUtil.getInstance().setSuccessHeardMisTime(nomolSuccessHeardMisTime);
                                }
                            } else {
                                ((WechatApplication) getApplication()).ONE_MINUTE = (HeardMisTime + addHeardMis) * 1000;
                                lastHeardMisTime = ((WechatApplication) getApplication()).ONE_MINUTE;
                                reTryHeardMisTimeCount = 0;
                            }
                        }
                        infoAlarm = infoAlarm + "__" + "client != null|client连接正常";
                    }


标签: 无