From 6ddad5e82280f74961d907c8930c6b0fefbebdf0 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 30 十二月 2025 09:36:38 +0800
Subject: [PATCH] 2025.12.29 1. websocket添加心跳回复机制

---
 src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt |   37 +++++++++++++++++++++----------------
 1 files changed, 21 insertions(+), 16 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 23e7b70..6874d94 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
@@ -4,6 +4,7 @@
 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
@@ -14,9 +15,9 @@
  * @date 2025/5/13
  * @author feiyu02
  */
-class UnderwayWebSocketServerHandler(sceneInfoRep: SceneInfoRep) : BaseHandler() {
+class UnderwayWebSocketServerHandler(sceneInfoRep: SceneInfoRep, sourceTraceRep: SourceTraceRep) : BaseHandler() {
 
-    private val sourceTraceController = SourceTraceController(sceneInfoRep)
+    private val sourceTraceController = SourceTraceController(sceneInfoRep, sourceTraceRep)
 
     override var tag: String = "UAV-WS"
 
@@ -27,29 +28,33 @@
     }
 
     override fun channelRead(ctx: ChannelHandlerContext?, msg: Any?) {
-        super.channelRead(ctx, msg)
+//        super.channelRead(ctx, msg)
         when (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)
-                            )
+                    when (msgTxt) {
+                        "start" -> {
+                            sourceTraceController.initTask()
+                            println(msgTxt)
+                        }
+                        "ping" -> {
+                            ctx?.channel()?.writeAndFlush(TextWebSocketFrame("ping checked"))
+                        }
+                        else -> {
+                            println(msgTxt)
+                            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()
                 }
             }
         }

--
Gitblit v1.9.3