From c531149478942c18ccf99c2533b7b5fd8edc91b9 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期三, 24 七月 2024 12:36:33 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
index a67c8f2..fa81984 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -43,8 +43,6 @@
     public void onOpen(Session session, @PathParam("username") String username) {
         this.username = username;
         this.session = session;
-        this.session.setMaxTextMessageBufferSize(12*1024*1024);
-        this.session.setMaxBinaryMessageBufferSize(12*1024*1024);
         List<WebSocketServer> webSocketServers = sessionMap.get(username);
         if (webSocketServers == null) {
             ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
@@ -98,7 +96,7 @@
      *
      * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
      */
-    @OnMessage(maxMessageSize = 5242880)
+    @OnMessage
     public void onMessage(String message, Session session, @PathParam("username") String username) {
         log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
         JSONObject obj = JSONUtil.parseObj(message);
@@ -121,9 +119,27 @@
     public void sendMessage(String message) {
         try {
             // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
-            this.session.getBasicRemote().sendText(message);
+            if(this.session.isOpen()){
+                int maxChunkSize = 50000; // 瀹氫箟鏈�澶х殑鍒嗗潡澶у皬
+                int length = message.length();
+                int chunks = (int) Math.ceil((double) length / maxChunkSize);
+                //鍒嗗潡鍙戦�佹秷鎭�
+                for (int i = 0; i < chunks; i++) {
+                    int startIndex = i * maxChunkSize;
+                    int endIndex = Math.min(startIndex + maxChunkSize, length);
+                    String chunk = message.substring(startIndex, endIndex);
+
+                    // 鍒ゆ柇鏄惁鏄渶鍚庝竴鍧楁秷鎭�
+                    boolean isLastChunk = (i == chunks - 1);
+                    if(isLastChunk==true){
+                        chunk+="<END>";
+                    }
+                    // 鍙戦�佸垎鍧楁秷鎭紝骞朵紶閫掓槸鍚︽槸鏈�鍚庝竴鍧楁秷鎭殑鏍囪瘑
+                    this.session.getBasicRemote().sendText(chunk);
+                }
+            }
         } catch (Exception e) {
-            log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+            log.error("鍙戦�佹秷鎭粰瀹㈡埛绔け璐ワ細{}", e.getMessage(), e);
         }
     }
 

--
Gitblit v1.8.0