From 30d14f147f11d75588e6aa136cdecfaedd18359b Mon Sep 17 00:00:00 2001 From: jangdongsin Date: Thu, 12 Dec 2024 22:49:59 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=A8=ED=82=B7=20=EC=A0=84=EC=86=A1=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/service/CollectClientService.java | 299 +----------------- 1 file changed, 16 insertions(+), 283 deletions(-) diff --git a/src/main/java/com/munjaon/client/server/service/CollectClientService.java b/src/main/java/com/munjaon/client/server/service/CollectClientService.java index a1a30db..9d9d2c5 100644 --- a/src/main/java/com/munjaon/client/server/service/CollectClientService.java +++ b/src/main/java/com/munjaon/client/server/service/CollectClientService.java @@ -272,7 +272,11 @@ public class CollectClientService extends Service { SmsMessage.makeDataForDeliver(sendBuffer, data); saveLog("[MESSAGE SEND] [... ...]"); saveLog("[MESSAGE DATA : " + data.toString() + "]"); - socketChannel.write(sendBuffer); + + while (sendBuffer.hasRemaining()) { + socketChannel.write(sendBuffer); + } + long MSG_SEND_TIME = System.currentTimeMillis(); while (true) { if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) { @@ -328,7 +332,11 @@ public class CollectClientService extends Service { LmsMessage.makeDataForDeliver(sendBuffer, data); saveLog("[MESSAGE SEND] [... ...]"); saveLog("[MESSAGE DATA : " + data.toString() + "]"); - socketChannel.write(sendBuffer); + + while (sendBuffer.hasRemaining()) { + socketChannel.write(sendBuffer); + } + long MSG_SEND_TIME = System.currentTimeMillis(); while (true) { if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) { @@ -505,132 +513,6 @@ public class CollectClientService extends Service { } } - private void mmsMessageService_bak(MunjaonMsg data) throws Exception { - try { - /* 이미지 경로 디폴트 경로 사용 여부 */ - String defaultYn = getProp("MMS", "DEFAULT_PATH_YN"); - /* MMS Image 저장 경로 */ - String path = null; - if ("Y".equals(defaultYn)) { - path = System.getProperty("ROOTPATH") + File.separator + "mmsfile" + File.separator; - } else { - path = getProp("MMS", "FILEPATH") + File.separator; - } - - /* 공통 메시지 유효성 체크 */ - int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data); - int checkMsgCode = MessageCheckUtil.validateMessageForMedia(data); - int checkImageCode = MessageCheckUtil.validateMessageForImage(data, path); - if (checkCommonCode != ErrorCode.OK.getCode() || checkMsgCode != ErrorCode.OK.getCode() || checkImageCode != ErrorCode.OK.getCode()) { - saveLog("[MESSAGE FILTER] [COMMON_CODE : " + checkCommonCode + "] [MSG_CODE : " + checkMsgCode + "] [IMAGE_CODE : " + checkImageCode + "]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - /* 전송처리 */ - worker.updateToDeliver(data.getMsgId()); - /* 실패처리 */ - MunjaonMsg errorMsg = null; - if (checkCommonCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkCommonCode), MessageUtil.getTime(), "ETC"); - }else if (checkMsgCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkMsgCode), MessageUtil.getTime(), "ETC"); - } else { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkImageCode), MessageUtil.getTime(), "ETC"); - } - worker.updateToReport(errorMsg); - /* 처리완료 */ - return; - } - - /* 정상인 경우 메시지 전송 */ - ByteBuffer sendBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + MmsMessage.DELIVER_MMS_BODY_LENGTH); - ByteBuffer recvBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + MmsMessage.DELIVER_MMS_ACK_BODY_LENGTH); - int fileCount = 0; - /* File check */ - ByteBuffer file01Buffer = MmsMessage.makeImageForDeliver(path, data.getFilename01()); - if (file01Buffer != null) { - saveLog("file01Buffer : " + file01Buffer.capacity()); - fileCount++; - } - ByteBuffer file02Buffer = MmsMessage.makeImageForDeliver(path, data.getFilename02()); - if (file02Buffer != null) { - saveLog("file02Buffer : " + file02Buffer.capacity()); - fileCount++; - } - ByteBuffer file03Buffer = MmsMessage.makeImageForDeliver(path, data.getFilename03()); - if (file03Buffer != null) { - saveLog("file03Buffer : " + file03Buffer.capacity()); - fileCount++; - } - /* fileCount 저장 */ - data.setFileCount(fileCount); - - Header.putHeader(sendBuffer, Header.COMMAND_DELIVER, MmsMessage.DELIVER_MMS_BODY_LENGTH); - MmsMessage.makeDataForDeliver(sendBuffer, data); - saveLog("[MESSAGE SEND] [... ...]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - - ByteBuffer[] byteBuffers = new ByteBuffer[fileCount + 1]; - int index = 0; - int mmsBufferLength = sendBuffer.capacity(); - byteBuffers[index] = sendBuffer; - socketChannel.write(sendBuffer); - index++; - if (file01Buffer != null) { - System.out.println("file01Buffer Last = " + file01Buffer.get(file01Buffer.capacity() - 1)); - mmsBufferLength += file01Buffer.capacity(); - byteBuffers[index] = file01Buffer; - socketChannel.write(file01Buffer); - index++; - } - if (file02Buffer != null) { - System.out.println("file02Buffer Last = " + file02Buffer.get(file02Buffer.capacity() - 1)); - mmsBufferLength += file02Buffer.capacity(); - byteBuffers[index] = file02Buffer; - socketChannel.write(file02Buffer); - index++; - } - if (file03Buffer != null) { - System.out.println("file03Buffer Last = " + file03Buffer.get(file03Buffer.capacity() - 1)); - mmsBufferLength += file03Buffer.capacity(); - byteBuffers[index] = file03Buffer; - socketChannel.write(file03Buffer); - } - - saveSystemLog("mmsBufferLength : " + mmsBufferLength); - saveSystemLog("byteBuffers : " + byteBuffers.length); - ByteBuffer mmsSendBuffer = ByteBuffer.allocate(mmsBufferLength); - Packet.mergeBuffers(mmsSendBuffer, byteBuffers); - - System.out.println("mmsSendBuffer Last = " + mmsSendBuffer.get(mmsSendBuffer.capacity() - 1)); - -// socketChannel.write(mmsSendBuffer); -// socketChannel.write(byteBuffers); - long MSG_SEND_TIME = System.currentTimeMillis(); - while (true) { - if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) { - saveLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]"); - throw new Exception("messageSendTimeOut : Expired ... ... ... ... ... ... ..."); - } - int recvCount = socketChannel.read(recvBuffer); - if (recvCount == -1) { - saveLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]"); - throw new Exception("DELIVER ERROR"); - } else if (recvCount > 0) { - setDeliverMsgId(data.getMsgId()); -// worker.updateToDeliver(data.getMsgId()); - saveLog("[MESSAGE SEND] [SUCCESS]"); - lastPacketSendTime = System.currentTimeMillis(); - break; - } - } - } catch (Exception e) { - e.printStackTrace(); - saveSystemLog("ERROR [" + e.getMessage() + "]"); - saveSystemLog("ERROR DETAIL"); - saveSystemLog(e.toString()); - throw new Exception(e); - } - } - private void katMessageService(MunjaonMsg data) throws Exception { try { /* 이미지 경로 디폴트 경로 사용 여부 */ @@ -675,7 +557,9 @@ public class CollectClientService extends Service { saveLog("[MESSAGE SEND] [... ...]"); saveLog("[MESSAGE DATA : " + data.toString() + "]"); - socketChannel.write(sendBuffer); + while (sendBuffer.hasRemaining()) { + socketChannel.write(sendBuffer); + } /* 파일 전송 */ ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile()); @@ -715,83 +599,6 @@ public class CollectClientService extends Service { } } - private void katMessageService_bak(MunjaonMsg data) throws Exception { - try { - /* 이미지 경로 디폴트 경로 사용 여부 */ - String defaultYn = getProp("KAKAO", "DEFAULT_PATH_YN"); - /* Kakao Json 저장 경로 */ - String path = null; - if ("Y".equals(defaultYn)) { - path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator; - } else { - path = getProp("KAKAO", "FILEPATH") + File.separator; - } - /* 공통 메시지 유효성 체크 */ - int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data); - int checkMsgCode = MessageCheckUtil.validateMessageForKakao(data); - int checkFileCode = MessageCheckUtil.validateJsonFile(path, data.getKakaoJsonFile()); - - if (checkCommonCode != ErrorCode.OK.getCode() || checkMsgCode != ErrorCode.OK.getCode() || checkFileCode != ErrorCode.OK.getCode()) { - saveLog("[MESSAGE FILTER] [COMMON_CODE : " + checkCommonCode + "] [MSG_CODE : " + checkMsgCode + "] [JSON_FILE_CODE : " + checkFileCode + "]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - /* 전송처리 */ - worker.updateToDeliver(data.getMsgId()); - /* 실패처리 */ - MunjaonMsg errorMsg = null; - if (checkCommonCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkCommonCode), MessageUtil.getTime(), "ETC"); - }else if (checkMsgCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkMsgCode), MessageUtil.getTime(), "ETC"); - } else { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkFileCode), MessageUtil.getTime(), "ETC"); - } - worker.updateToReport(errorMsg); - /* 처리완료 */ - return; - } - - /* 정상인 경우 메시지 전송 */ - ByteBuffer sendBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + KakaoMessage.DELIVER_KAKAO_BODY_LENGTH); - ByteBuffer recvBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + KakaoMessage.DELIVER_KAKAO_ACK_BODY_LENGTH); - /* File check */ - ByteBuffer fileBuffer = KakaoMessage.makeJsonForDeliver(path, data.getKakaoJsonFile()); - - Header.putHeader(sendBuffer, Header.COMMAND_DELIVER, KakaoMessage.DELIVER_KAKAO_BODY_LENGTH); - KakaoMessage.makeDataForDeliver(sendBuffer, data); - saveLog("[MESSAGE SEND] [... ...]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - - ByteBuffer[] byteBuffers = new ByteBuffer[2]; - byteBuffers[0] = sendBuffer; - byteBuffers[1] = fileBuffer; - - socketChannel.write(byteBuffers); - long MSG_SEND_TIME = System.currentTimeMillis(); - while (true) { - if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) { - saveLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]"); - throw new Exception("messageSendTimeOut : Expired ... ... ... ... ... ... ..."); - } - int recvCount = socketChannel.read(recvBuffer); - if (recvCount == -1) { - saveLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]"); - throw new Exception("DELIVER ERROR"); - } else if (recvCount > 0) { - setDeliverMsgId(data.getMsgId()); -// worker.updateToDeliver(data.getMsgId()); - saveLog("[MESSAGE SEND] [SUCCESS]"); - lastPacketSendTime = System.currentTimeMillis(); - break; - } - } - } catch (Exception e) { - saveSystemLog("ERROR [" + e.getMessage() + "]"); - saveSystemLog("ERROR DETAIL"); - saveSystemLog(e.toString()); - throw new Exception(e); - } - } - private void kftMessageService(MunjaonMsg data) throws Exception { try { /* 이미지 경로 디폴트 경로 사용 여부 */ @@ -835,7 +642,9 @@ public class CollectClientService extends Service { saveLog("[MESSAGE SEND] [... ...]"); saveLog("[MESSAGE DATA : " + data.toString() + "]"); - socketChannel.write(sendBuffer); + while (sendBuffer.hasRemaining()) { + socketChannel.write(sendBuffer); + } /* 파일 전송 */ ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile()); @@ -875,82 +684,6 @@ public class CollectClientService extends Service { } } - private void kftMessageService_bak(MunjaonMsg data) throws Exception { - try { - /* 이미지 경로 디폴트 경로 사용 여부 */ - String defaultYn = getProp("KAKAO", "DEFAULT_PATH_YN"); - /* Kakao Json 저장 경로 */ - String path = null; - if ("Y".equals(defaultYn)) { - path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator; - } else { - path = getProp("KAKAO", "FILEPATH") + File.separator; - } - /* 공통 메시지 유효성 체크 */ - int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data); - int checkMsgCode = MessageCheckUtil.validateMessageForKakao(data); - int checkFileCode = MessageCheckUtil.validateJsonFile(path, data.getKakaoJsonFile()); - if (checkCommonCode != ErrorCode.OK.getCode() || checkMsgCode != ErrorCode.OK.getCode() || checkFileCode != ErrorCode.OK.getCode()) { - saveLog("[MESSAGE FILTER] [COMMON_CODE : " + checkCommonCode + "] [MSG_CODE : " + checkMsgCode + "] [JSON_FILE_CODE : " + checkFileCode + "]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - /* 전송처리 */ - worker.updateToDeliver(data.getMsgId()); - /* 실패처리 */ - MunjaonMsg errorMsg = null; - if (checkCommonCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkCommonCode), MessageUtil.getTime(), "ETC"); - }else if (checkMsgCode != ErrorCode.OK.getCode()) { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkMsgCode), MessageUtil.getTime(), "ETC"); - } else { - errorMsg = MessageCheckUtil.setReportMessage(data.getMsgId(), "00", String.valueOf(checkFileCode), MessageUtil.getTime(), "ETC"); - } - worker.updateToReport(errorMsg); - /* 처리완료 */ - return; - } - - /* 정상인 경우 메시지 전송 */ - ByteBuffer sendBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + KakaoMessage.DELIVER_KAKAO_BODY_LENGTH); - ByteBuffer recvBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + KakaoMessage.DELIVER_KAKAO_ACK_BODY_LENGTH); - /* File check */ - ByteBuffer fileBuffer = KakaoMessage.makeJsonForDeliver(path, data.getKakaoJsonFile()); - - Header.putHeader(sendBuffer, Header.COMMAND_DELIVER, KakaoMessage.DELIVER_KAKAO_BODY_LENGTH); - KakaoMessage.makeDataForDeliver(sendBuffer, data); - saveLog("[MESSAGE SEND] [... ...]"); - saveLog("[MESSAGE DATA : " + data.toString() + "]"); - - ByteBuffer[] byteBuffers = new ByteBuffer[2]; - byteBuffers[0] = sendBuffer; - byteBuffers[1] = fileBuffer; - - socketChannel.write(byteBuffers); - long MSG_SEND_TIME = System.currentTimeMillis(); - while (true) { - if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) { - saveLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]"); - throw new Exception("messageSendTimeOut : Expired ... ... ... ... ... ... ..."); - } - int recvCount = socketChannel.read(recvBuffer); - if (recvCount == -1) { - saveLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]"); - throw new Exception("DELIVER ERROR"); - } else if (recvCount > 0) { - setDeliverMsgId(data.getMsgId()); -// worker.updateToDeliver(data.getMsgId()); - saveLog("[MESSAGE SEND] [SUCCESS]"); - lastPacketSendTime = System.currentTimeMillis(); - break; - } - } - } catch (Exception e) { - saveSystemLog("ERROR [" + e.getMessage() + "]"); - saveSystemLog("ERROR DETAIL"); - saveSystemLog(e.toString()); - throw new Exception(e); - } - } - private void linkCheckService() { if (System.currentTimeMillis() - lastPacketSendTime < Packet.LINK_CHECK_CYCLE) { return;