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