장동신 장동신 2024-12-10
MMS, 알림톡, 친구톡 파일전송 로직 수정
@b3c21f0345425da1da0a6a6361867cfb619583e9
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
@@ -416,35 +416,42 @@
             saveLog("[MESSAGE SEND] [... ...]");
             saveLog("[MESSAGE DATA : " + data.toString() + "]");
 
-            socketChannel.write(sendBuffer);
+            while (sendBuffer.hasRemaining()) {
+                socketChannel.write(sendBuffer);
+            }
 
             if (file01HeadBuffer != null) {
                 socketChannel.write(file01HeadBuffer);
-
-                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename01());
-                fileBodyBuffer.flip();
-                while(fileBodyBuffer.hasRemaining()){
-                    int bytesWritten = socketChannel.write(fileBodyBuffer);
-                    saveLog("bytesWritten : " + bytesWritten);
-                }
+                uploadFileSend(path + data.getFilename01());
+//
+//                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename01());
+//                fileBodyBuffer.flip();
+//                while(fileBodyBuffer.hasRemaining()){
+//                    int bytesWritten = socketChannel.write(fileBodyBuffer);
+//                    saveLog("bytesWritten : " + bytesWritten);
+//                }
             }
             if (file02HeadBuffer != null) {
                 socketChannel.write(file02HeadBuffer);
-                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename02());
-                fileBodyBuffer.flip();
-                while(fileBodyBuffer.hasRemaining()){
-                    int bytesWritten = socketChannel.write(fileBodyBuffer);
-                    saveLog("bytesWritten : " + bytesWritten);
-                }
+                uploadFileSend(path + data.getFilename02());
+
+//                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename02());
+//                fileBodyBuffer.flip();
+//                while(fileBodyBuffer.hasRemaining()){
+//                    int bytesWritten = socketChannel.write(fileBodyBuffer);
+//                    saveLog("bytesWritten : " + bytesWritten);
+//                }
             }
             if (file03HeadBuffer != null) {
                 socketChannel.write(file03HeadBuffer);
-                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename03());
-                fileBodyBuffer.flip();
-                while(fileBodyBuffer.hasRemaining()){
-                    int bytesWritten = socketChannel.write(fileBodyBuffer);
-                    saveLog("bytesWritten : " + bytesWritten);
-                }
+                uploadFileSend(path + data.getFilename03());
+
+//                ByteBuffer fileBodyBuffer = MmsMessage.makeImageBodyForDeliver(path, data.getFilename03());
+//                fileBodyBuffer.flip();
+//                while(fileBodyBuffer.hasRemaining()){
+//                    int bytesWritten = socketChannel.write(fileBodyBuffer);
+//                    saveLog("bytesWritten : " + bytesWritten);
+//                }
             }
 
             long MSG_SEND_TIME = System.currentTimeMillis();
@@ -487,7 +494,9 @@
                 }
 
                 buff.flip();
-                socketChannel.write(buff);
+                while (buff.hasRemaining()) {
+                    socketChannel.write(buff);
+                }
                 buff.clear();
             }
 
@@ -671,12 +680,14 @@
             /* 파일 전송 */
             ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile());
             socketChannel.write(fileHeadBuffer);
-            ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile());
-            fileBodyBuffer.flip();
-            while(fileBodyBuffer.hasRemaining()){
-                int bytesWritten = socketChannel.write(fileBodyBuffer);
-                saveLog("bytesWritten : " + bytesWritten);
-            }
+            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) {
@@ -829,12 +840,14 @@
             /* 파일 전송 */
             ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile());
             socketChannel.write(fileHeadBuffer);
-            ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile());
-            fileBodyBuffer.flip();
-            while(fileBodyBuffer.hasRemaining()){
-                int bytesWritten = socketChannel.write(fileBodyBuffer);
-                saveLog("bytesWritten : " + bytesWritten);
-            }
+            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