|
@@ -0,0 +1,73 @@
|
|
|
+package com.evps.comm.server.xnet.server.process.response;
|
|
|
+
|
|
|
+import com.evps.comm.server.kafka.KafkaProducerService;
|
|
|
+import com.evps.comm.server.process.dbms.DbmsData;
|
|
|
+import com.evps.comm.server.process.dbms.DbmsDataProcess;
|
|
|
+import com.evps.comm.server.repository.ApplicationRepository;
|
|
|
+import com.evps.common.dto.EvpsCenter;
|
|
|
+import com.evps.common.kafka.dto.KafkaEvpsEventDto;
|
|
|
+import com.evps.common.kafka.dto.KafkaEvpsServiceDto;
|
|
|
+import com.evps.common.kafka.dto.KafkaEvpsNetPingDto;
|
|
|
+import com.evps.common.kafka.dto.KafkaEvpsServiceEndDto;
|
|
|
+import com.evps.common.protocol.EvpsProtocolConst;
|
|
|
+import com.evps.common.protocol.response.EvpsCommResponse;
|
|
|
+import com.evps.common.protocol.response.RecvPacketDto;
|
|
|
+import com.evps.common.utils.EvpsUtils;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.slf4j.MDC;
|
|
|
+
|
|
|
+/*
|
|
|
+SEQUENCE 일련번호 Integer 4
|
|
|
+ */
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@AllArgsConstructor
|
|
|
+public class EvpsNetPing implements EvpsCommResponse {
|
|
|
+ private final DbmsDataProcess dbmsDataProcess;
|
|
|
+ private final KafkaProducerService kafkaProducerService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean response(RecvPacketDto packet) {
|
|
|
+ boolean result = true;
|
|
|
+ try {
|
|
|
+ MDC.put("id", packet.getCenter().getLogKey());
|
|
|
+ log.info("[{}], EvpsNetPing.response.", packet.getCenter().getLogKey());
|
|
|
+
|
|
|
+ return makeData(packet, packet.getPacket().getBuffer());
|
|
|
+ }
|
|
|
+ catch (Exception e) {
|
|
|
+ log.error("[{}], EvpsNetPing.response: Exception. will be closed. {}", packet.getCenter().getLogKey(), e.getMessage());
|
|
|
+ result = false;
|
|
|
+ }
|
|
|
+ finally {
|
|
|
+ MDC.remove(packet.getCenter().getLogKey());
|
|
|
+ MDC.clear();
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+// private KafkaEvpsNetPingDto getData(String serviceId, byte[] buffer, int idx) {
|
|
|
+// long sequenceNumber = ((long) (buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
+// return KafkaEvpsNetPingDto.builder()
|
|
|
+// .serviceId(serviceId)
|
|
|
+// .sequenceNumber(sequenceNumber)
|
|
|
+// .build();
|
|
|
+// }
|
|
|
+
|
|
|
+ private boolean makeData(RecvPacketDto packet, byte[] buffer) {
|
|
|
+ EvpsCenter center = packet.getCenter();
|
|
|
+ if (buffer == null || buffer.length != EvpsProtocolConst.EVENT_SERVICE_END_SIZE) {
|
|
|
+ log.error("[{}], EvpsNetPing.response: Data Length Error: Required data length({}), Cur({}). will be closed.",
|
|
|
+ center.getLogKey(), EvpsProtocolConst.EVENT_SERVICE_END_SIZE, buffer == null ? 0 : buffer.length);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+// KafkaEvpsNetPingDto data = getData(packet.getPacket().getServiceId(), buffer, 0);
|
|
|
+
|
|
|
+ int idx = 0;
|
|
|
+ long sequenceNumber = ((long) (buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
+ log.info("[{}], EvpsNetPing.response: Service Id: {}, SequenceNumber: {}", center.getLogKey(), packet.getPacket().getServiceId(), sequenceNumber);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+}
|