From eb3dd00b0b7fcda477229d518d250f9c842b790b Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 21 十月 2025 17:45:44 +0800
Subject: [PATCH] 2025.10.21 1. 走航季度报告相关数据计算逻辑调整
---
src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt | 58 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 34 insertions(+), 24 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt b/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
index 0e912d3..11f5696 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
@@ -1,36 +1,58 @@
package com.flightfeather.uav.socket.handler
+import com.flightfeather.uav.biz.sourcetrace.SourceTraceController
+import com.flightfeather.uav.common.utils.GsonUtils
+import com.flightfeather.uav.domain.entity.BaseRealTimeData
+import com.flightfeather.uav.domain.repository.SceneInfoRep
+import com.flightfeather.uav.domain.repository.SourceTraceRep
+import com.flightfeather.uav.lightshare.bean.DataVo
+import com.flightfeather.uav.socket.sender.UnderwayWebSocketSender
import io.netty.channel.ChannelHandlerContext
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame
-import org.springframework.stereotype.Component
/**
*
* @date 2025/5/13
* @author feiyu02
*/
-@Component
-class UnderwayWebSocketServerHandler : BaseHandler() {
+class UnderwayWebSocketServerHandler(sceneInfoRep: SceneInfoRep, sourceTraceRep: SourceTraceRep) : BaseHandler() {
- private val sessionPool = mutableMapOf<String?, ChannelHandlerContext?>()
+ private val sourceTraceController = SourceTraceController(sceneInfoRep, sourceTraceRep)
override var tag: String = "UAV-WS"
override fun channelRegistered(ctx: ChannelHandlerContext?) {
super.channelRegistered(ctx)
// 灏嗚繛鎺ュ瓨鍌�
- if (!sessionPool.containsKey(ctx?.name())) {
- sessionPool[ctx?.name()] = ctx
- }
+ UnderwayWebSocketSender.saveSession(ctx)
}
override fun channelRead(ctx: ChannelHandlerContext?, msg: Any?) {
super.channelRead(ctx, msg)
-
when (msg) {
- is TextWebSocketFrame->{
- println(msg.text())
- ctx?.channel()?.writeAndFlush(msg)
+ is TextWebSocketFrame -> {
+ val msgTxt = msg.text()
+
+ println(msgTxt)
+// ctx?.channel()?.writeAndFlush(msg)
+
+ // Test
+ try {
+ if (msgTxt == "start") {
+ sourceTraceController.initTask()
+ } else {
+ val data = GsonUtils.parserJsonToArrayBeans(msgTxt, DataVo::class.java)
+ data.forEach {
+ sourceTraceController.addOneData(
+ it.toBaseRealTimeData(BaseRealTimeData::class.java)
+ )
+ }
+ }
+ } catch (e: Exception) {
+// ctx?.channel()?.writeAndFlush(TextWebSocketFrame("褰撳墠涓烘祴璇曠姸鎬侊紝浼犺緭鐨勬暟鎹笉鏄蛋鑸暟鎹牸寮�"))
+ println("褰撳墠涓烘祴璇曠姸鎬侊紝浼犺緭鐨勬暟鎹笉鏄蛋鑸暟鎹牸寮�")
+ e.printStackTrace()
+ }
}
}
}
@@ -38,18 +60,6 @@
override fun channelInactive(ctx: ChannelHandlerContext?) {
super.channelInactive(ctx)
// 灏嗚繛鎺ョЩ闄�
- if (sessionPool.containsKey(ctx?.name())) {
- sessionPool.remove(ctx?.name())
- }
- }
-
- fun send() {
-
- }
-
- fun broadcast(msg: String) {
- sessionPool.forEach { t, u ->
- u?.channel()?.writeAndFlush(TextWebSocketFrame(msg))
- }
+ UnderwayWebSocketSender.removeSession(ctx)
}
}
\ No newline at end of file
--
Gitblit v1.9.3