From 998f025a8d5313f94b54497bfc731ae961d52bcb Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 24 七月 2024 08:29:35 +0800
Subject: [PATCH] 消息过长时,websocket分块推送消息 指定钢化改为有一炉正在出片时不允许指定钢化
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java | 26 +++++++++++++++++++++-----
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 4 ++--
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java | 2 +-
UI-Project/src/utils/WebSocketService.js | 19 +++++++++++++++----
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java | 5 +----
5 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
index 432bd9c..310d4c8 100644
--- a/UI-Project/src/utils/WebSocketService.js
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -1,7 +1,7 @@
// WebSocketService.js
let socket = null;
-
+let messages = '';
export const initializeWebSocket = (socketUrl, messageHandler) => {
if (typeof WebSocket === "undefined") {
console.log("Your browser does not support WebSocket");
@@ -18,13 +18,24 @@
if (!msg.data) {
return;
}
-
- const obj = JSON.parse(msg.data);
-
+ messages += msg.data;
+ const isLastChunk = msg.data.endsWith('<END>');
+ //鏄惁涓烘渶鍚庝竴鍧楁秷鎭�
+ if(isLastChunk) {
+ messages= messages.replace('<END>', '');
+ const obj = JSON.parse(messages);
+
// 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
if (messageHandler) {
messageHandler(obj);
}
+ messages='';
+ }
+
+
+
+
+
};
return socket;
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);
}
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index d83399e..3dd6f8f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -83,7 +83,7 @@
if(result==true){
return Result.build(200,"鎸囧畾閽㈠寲鎴愬姛",1);
}else {
- return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔�", 1);
+ return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
}
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 118e6ac..b1b6d6d 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -353,9 +353,9 @@
public boolean TemperingGlass(String temperingLayoutId, String engineerId){
LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper=new LambdaQueryWrapper<>();
temperingGlassInfoLambdaQueryWrapper
- .eq(TemperingGlassInfo::getTemperingLayoutId,temperingLayoutId)
- .eq(TemperingGlassInfo::getEngineerId,engineerId);
+ .eq(TemperingGlassInfo::getState,Const.TEMPERING_NEW);
List<TemperingGlassInfo> temperingGlassInfoList=temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+
if(temperingGlassInfoList.size()==0){
LambdaQueryWrapper<BigStorageCageDetails> wrapper =new LambdaQueryWrapper<>();
wrapper.eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index 95616b3..c013e0a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -33,14 +33,13 @@
private TemperingGlassInfoService temperingGlassInfoService;
private JSONObject jsonObject = new JSONObject();
- private JSONObject jsonObject1 = new JSONObject();
public void queryDataSource1() throws InterruptedException {
List<Double> carPostion=new ArrayList<>();
carPostion.add(0.25);
carPostion.add(0.5);
jsonObject.append("carPostion",carPostion);
//鐣岄潰灞曠ず绗煎瓙淇℃伅
- jsonObject1.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
+ jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
//杩涚墖浠诲姟鏁版嵁
List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
@@ -72,7 +71,6 @@
@Scheduled(fixedDelay = 1000)
public void plcStorageCageTask() throws InterruptedException {
jsonObject = new JSONObject();
- jsonObject1 = new JSONObject();
try {
//鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
queryDataSource1();
@@ -84,7 +82,6 @@
for (WebSocketServer webserver : sendwServer) {
if (webserver != null) {
webserver.sendMessage(jsonObject.toString());
- webserver.sendMessage(jsonObject1.toString());
List<String> messages = webserver.getMessages();
if (!messages.isEmpty()) {
// // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
--
Gitblit v1.8.0