From 22c359ea29b5ab086369f73ea3ed93529dbdc362 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 23 Jul 2024 18:43:14 +0800
Subject: [PATCH] 1

---
 websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java b/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
index 9ae676e..73af220 100644
--- a/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
+++ b/websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
@@ -10,17 +10,21 @@
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import java.io.ByteArrayOutputStream;
 
 import javax.websocket.*;
 import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
 import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
+import java.util.zip.Deflater;
+import java.util.zip.DeflaterOutputStream;
 
 /**
  * @ClassDescription: websocket服务端
@@ -82,7 +86,12 @@
                         sessionLock.lock();
                         try {
                             synchronized (session){
-                                session.getBasicRemote().sendText(message);
+                                // 压缩消息
+                                byte[] compressedData = compress(message);
+
+                                // 发送压缩后的消息
+                                session.getBasicRemote().sendBinary(ByteBuffer.wrap(compressedData));
+//                                session.getBasicRemote().sendText(message);
                             }
                         } catch (Exception e) {
                             log.error("发送消息时出现异常: " + e.getMessage());
@@ -109,6 +118,16 @@
         }
     }
 
+    private byte[] compress(String data) throws IOException {
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION, true);
+        try (DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(byteArrayOutputStream, deflater)) {
+            deflaterOutputStream.write(data.getBytes("UTF-8"));
+        }
+        deflater.end();
+        return byteArrayOutputStream.toByteArray();
+    }
+
 //
 //    public static Map<String, Object> jsonToMap(String json) {
 //        Gson gson = new Gson();

--
Gitblit v1.9.3