개발서버 정보 수정, mms 이미지 처리 로직 수정
This commit is contained in:
parent
2d36b481ab
commit
b4d1a37cad
@ -61,6 +61,16 @@ public final class Packet {
|
||||
}
|
||||
}
|
||||
|
||||
public static void mergeBuffers(ByteBuffer dest, ByteBuffer src, int destOffset) {
|
||||
if (dest == null || src == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < src.capacity(); i++) {
|
||||
dest.put((destOffset + i), src.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
public static void printBuffer(ByteBuffer buffer) {
|
||||
if (buffer == null) {
|
||||
return;
|
||||
|
||||
@ -322,6 +322,7 @@ public class CollectServerTask extends Thread {
|
||||
|
||||
private void recvMmsDeliver(SocketChannel channel, ByteBuffer headBuffer) throws IOException {
|
||||
try {
|
||||
long MSG_RECV_TIME = System.currentTimeMillis(); // 메시지를 수신한 시간
|
||||
ByteBuffer bodyBuffer = ByteBuffer.allocate(MmsMessage.DELIVER_MMS_BODY_LENGTH);
|
||||
channel.read(bodyBuffer);
|
||||
ByteBuffer deliverBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + MmsMessage.DELIVER_MMS_BODY_LENGTH);
|
||||
@ -341,25 +342,101 @@ public class CollectServerTask extends Thread {
|
||||
imagePath = imagePath + File.separator + MessageUtil.getDate() + File.separator + SerialNoUtil.getSerialNo();
|
||||
FileUtil.mkdirs(imagePath);
|
||||
|
||||
for (int i = 0; i < recvFileCount; i++) {
|
||||
int saveFileCount = 0;
|
||||
while (true) {
|
||||
if (recvFileCount == saveFileCount) { // 이미지 파일을 모두 수신한 경우
|
||||
break;
|
||||
}
|
||||
if (System.currentTimeMillis() - MSG_RECV_TIME > 10000) {
|
||||
/* MMS 파일 수신 timeout */
|
||||
saveLog(printTaskLog() + "[MMS File TimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
expireConnectUser();
|
||||
return;
|
||||
}
|
||||
/* MMS 파일 수신 */
|
||||
ByteBuffer fileHeadBuffer = ByteBuffer.allocate(MmsMessage.DELIVER_MMS_FILENAME_LENGTH + MmsMessage.DELIVER_MMS_FILESIZE_LENGTH);
|
||||
channel.read(fileHeadBuffer);
|
||||
int recvCount = channel.read(fileHeadBuffer);
|
||||
if (recvCount == 0) { // 수신한 바이트가 없거나 끊긴 경우
|
||||
continue;
|
||||
}
|
||||
|
||||
/* 이미지 파일 패킷 수진 */
|
||||
String fileName = MmsMessage.getFileNameForDeliver(fileHeadBuffer);
|
||||
String fileSize = MmsMessage.getFileSizeForDeliver(fileHeadBuffer);
|
||||
ByteBuffer fileBuffer = ByteBuffer.allocate(Integer.parseInt(fileSize));
|
||||
channel.read(fileBuffer);
|
||||
fileBuffer.flip();
|
||||
JobFileFactory.saveFileForByteBuffer(imagePath, fileName, fileBuffer);
|
||||
if (i == 0) {
|
||||
int fileSize = Integer.parseInt(MmsMessage.getFileSizeForDeliver(fileHeadBuffer));
|
||||
saveLog("[MMS File Name : " + fileName + ", File Size : " + fileSize + "]");
|
||||
|
||||
int recvFileSize = 0;
|
||||
ByteBuffer fileBuffer = ByteBuffer.allocate(fileSize);
|
||||
long IMAGE_RECV_TIME = System.currentTimeMillis(); // 이미지 패킷 처리 시작시간
|
||||
while (true) {
|
||||
int bufferSize = 1024;
|
||||
if (recvFileSize < fileSize) {
|
||||
bufferSize = fileSize - recvFileSize;
|
||||
}
|
||||
|
||||
ByteBuffer buffer = ByteBuffer.allocate(bufferSize);
|
||||
int unitRecvCnt = channel.read(buffer);
|
||||
if (unitRecvCnt > 0) {
|
||||
Packet.mergeBuffers(fileBuffer, buffer, recvFileSize);
|
||||
recvFileSize += unitRecvCnt;
|
||||
saveLog("unitRecvCnt : " + unitRecvCnt);
|
||||
saveLog("recvFileSize : " + recvFileSize);
|
||||
}
|
||||
|
||||
if (recvFileSize == fileSize) {
|
||||
if (saveFileCount == 0) {
|
||||
messageDto.setUserFileName01(imagePath + File.separator + fileName);
|
||||
} else if (i == 1) {
|
||||
} else if (saveFileCount == 1) {
|
||||
messageDto.setUserFileName02(imagePath + File.separator + fileName);
|
||||
} else if (i == 2) {
|
||||
} else if (saveFileCount == 2) {
|
||||
messageDto.setUserFileName03(imagePath + File.separator + fileName);
|
||||
}
|
||||
saveLog(printTaskLog() + "[MMS IMAGE] [File : " + fileName + ", Size : " + fileSize + "]");
|
||||
JobFileFactory.saveFileForByteBuffer(imagePath, fileName, fileBuffer);
|
||||
saveFileCount++; // 수신한 파일 카운트 증가
|
||||
break;
|
||||
}
|
||||
|
||||
if (System.currentTimeMillis() - IMAGE_RECV_TIME > 3000) {
|
||||
/* MMS 이미지 파일 수신 timeout */
|
||||
saveLog(printTaskLog() + "[MMS File : " + fileName + " : Expired ... ... ... ... ... ... ...]");
|
||||
break;
|
||||
}
|
||||
}
|
||||
// ByteBuffer fileBuffer = ByteBuffer.allocate(Integer.parseInt(fileSize));
|
||||
// channel.read(fileBuffer);
|
||||
// saveSystemLog("fileBuffer Last : " + fileBuffer.get(fileBuffer.capacity() - 1));
|
||||
// fileBuffer.flip();
|
||||
// JobFileFactory.saveFileForByteBuffer(imagePath, fileName, fileBuffer);
|
||||
// if (saveFileCount == 0) {
|
||||
// messageDto.setUserFileName01(imagePath + File.separator + fileName);
|
||||
// } else if (saveFileCount == 1) {
|
||||
// messageDto.setUserFileName02(imagePath + File.separator + fileName);
|
||||
// } else if (saveFileCount == 2) {
|
||||
// messageDto.setUserFileName03(imagePath + File.separator + fileName);
|
||||
// }
|
||||
// saveLog(printTaskLog() + "[MMS IMAGE] [File : " + fileName + ", Size : " + fileSize + "]");
|
||||
// saveFileCount++; // 수신한 파일 카운트 증가
|
||||
}
|
||||
|
||||
// for (int i = 0; i < recvFileCount; i++) {
|
||||
// ByteBuffer fileHeadBuffer = ByteBuffer.allocate(MmsMessage.DELIVER_MMS_FILENAME_LENGTH + MmsMessage.DELIVER_MMS_FILESIZE_LENGTH);
|
||||
// channel.read(fileHeadBuffer);
|
||||
// String fileName = MmsMessage.getFileNameForDeliver(fileHeadBuffer);
|
||||
// String fileSize = MmsMessage.getFileSizeForDeliver(fileHeadBuffer);
|
||||
// ByteBuffer fileBuffer = ByteBuffer.allocate(Integer.parseInt(fileSize));
|
||||
// channel.read(fileBuffer);
|
||||
// fileBuffer.flip();
|
||||
// JobFileFactory.saveFileForByteBuffer(imagePath, fileName, fileBuffer);
|
||||
// if (i == 0) {
|
||||
// messageDto.setUserFileName01(imagePath + File.separator + fileName);
|
||||
// } else if (i == 1) {
|
||||
// messageDto.setUserFileName02(imagePath + File.separator + fileName);
|
||||
// } else if (i == 2) {
|
||||
// messageDto.setUserFileName03(imagePath + File.separator + fileName);
|
||||
// }
|
||||
// saveLog(printTaskLog() + "[MMS IMAGE] [File : " + fileName + ", Size : " + fileSize + "]");
|
||||
// }
|
||||
|
||||
/* 사용자 단가, 발송망 설정 */
|
||||
MemberDto savedMemberDto = null;
|
||||
if (this.connectUserDto != null) {
|
||||
@ -564,6 +641,7 @@ public class CollectServerTask extends Thread {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
resultCode = "10";
|
||||
saveLog(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
@ -2,10 +2,10 @@ spring:
|
||||
datasource:
|
||||
server:
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
url: jdbc:mariadb://localhost:3306/mjon
|
||||
jdbc-url: jdbc:mariadb://localhost:3306/mjon
|
||||
username: root
|
||||
password: 1234
|
||||
url: jdbc:mariadb://192.168.0.60:3303/mjon_agent_server
|
||||
jdbc-url: jdbc:mariadb://192.168.0.60:3303/mjon_agent_server
|
||||
username: mjonUr_agent
|
||||
password: mjagent123$
|
||||
connectionTimeout: 30000
|
||||
maximumPoolSize: 15
|
||||
maxLifetime: 1800000
|
||||
@ -22,6 +22,6 @@ server:
|
||||
# server-property-file: /home/mjon_server_agent/config/server.properties
|
||||
# db-name: mjon_agent_back
|
||||
agent:
|
||||
root-path: /Users/jangdongsin/DevDocs/apps/itn/agent_server
|
||||
server-property-file: /Users/jangdongsin/DevDocs/apps/itn/agent_server/config/server.properties
|
||||
root-path: /data/agent/agent_server
|
||||
server-property-file: /data/agent/agent_server/config/server.properties
|
||||
db-name: mjon_agent_back
|
||||
Loading…
Reference in New Issue
Block a user