장동신 장동신 2024-11-13
카카오 json파일 전송 로직 수정
@6d2985df6fad32d0fd92e6a8cf52503dd5b60ff6
src/main/java/com/munjaon/client/server/packet/KakaoMessage.java
--- src/main/java/com/munjaon/client/server/packet/KakaoMessage.java
+++ src/main/java/com/munjaon/client/server/packet/KakaoMessage.java
@@ -170,4 +170,23 @@
 
         return fileHeadBuffer;
     }
+
+    public static ByteBuffer makeJsonBodyForDeliver(String path, String fileName) {
+        if (path == null || fileName == null) {
+            return null;
+        }
+        File file = new File(path + fileName);
+        if (file.exists() == false) {
+            return null;
+        }
+
+        ByteBuffer fileBodyBuffer = null;
+        try {
+            fileBodyBuffer = ByteBuffer.allocate((int) file.length());
+            fileBodyBuffer.put(Files.readAllBytes(file.toPath()));
+        } catch (IOException e) {
+        }
+
+        return fileBodyBuffer;
+    }
 }
src/main/java/com/munjaon/client/server/service/CollectClientService.java
--- src/main/java/com/munjaon/client/server/service/CollectClientService.java
+++ src/main/java/com/munjaon/client/server/service/CollectClientService.java
@@ -671,7 +671,12 @@
             /* 파일 전송 */
             ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile());
             socketChannel.write(fileHeadBuffer);
-            uploadFileSend(path + data.getKakaoJsonFile());
+            ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile());
+            fileBodyBuffer.flip();
+            while(fileBodyBuffer.hasRemaining()){
+                int bytesWritten = socketChannel.write(fileBodyBuffer);
+                saveLog("bytesWritten : " + bytesWritten);
+            }
 
             long MSG_SEND_TIME = System.currentTimeMillis();
             while (true) {
@@ -824,7 +829,12 @@
             /* 파일 전송 */
             ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile());
             socketChannel.write(fileHeadBuffer);
-            uploadFileSend(path + data.getKakaoJsonFile());
+            ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile());
+            fileBodyBuffer.flip();
+            while(fileBodyBuffer.hasRemaining()){
+                int bytesWritten = socketChannel.write(fileBodyBuffer);
+                saveLog("bytesWritten : " + bytesWritten);
+            }
 
             long MSG_SEND_TIME = System.currentTimeMillis();
             while (true) {
Add a comment
List