diff --git a/lib/talk/startChart/handle/impl/udp_heart_beat_handler.dart b/lib/talk/startChart/handle/impl/udp_heart_beat_handler.dart index 75fe9103..82b8843b 100644 --- a/lib/talk/startChart/handle/impl/udp_heart_beat_handler.dart +++ b/lib/talk/startChart/handle/impl/udp_heart_beat_handler.dart @@ -16,21 +16,22 @@ class UdpHeartBeatHandler extends ScpMessageBaseHandle @override void handleResp(ScpMessage scpMessage) { - // TODO: 收到心跳消息回复 final HeartbeatResponse heartbeatResponse = scpMessage.Payload; final statusCode = heartbeatResponse.statusCode; if (statusCode != null && statusCode != PayloadTypeConstant.heartHeatSuccessResponse) { - // 停止发送心跳 + // 心跳回复失败,停止发送心跳 startChartManage.stopHeartbeat(); // 心跳响应失败,重新上线 startChartManage.isOnlineStartChartServer = false; startChartManage.reStartOnlineStartChartServer(); + } else { + // 修改间隔为返回的心跳间隔 + startChartManage.heartbeatIntervalTime = + heartbeatResponse.nextPingTime ?? 1; + // 修改完间隔之后重新启动发送心跳 + startChartManage.reStartHeartBeat(); } - startChartManage.heartbeatIntervalTime = - heartbeatResponse.nextPingTime ?? 1; - // 修改完间隔之后重新启动发送心跳 - startChartManage.reStartHeartBeat(); } @override