From 27be5f5586a88619e4e01cf1ac9c152240012d2a Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期六, 19 十月 2024 15:10:54 +0800
Subject: [PATCH] 更新voice socket

---
 src/main/java/com/whyc/webSocket/VoiceWavReadSocket.java |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/webSocket/VoiceWavReadSocket.java b/src/main/java/com/whyc/webSocket/VoiceWavReadSocket.java
index a3ca8ee..21e10ef 100644
--- a/src/main/java/com/whyc/webSocket/VoiceWavReadSocket.java
+++ b/src/main/java/com/whyc/webSocket/VoiceWavReadSocket.java
@@ -22,7 +22,7 @@
 
     private Session session;
 
-    private Thread thread;
+    private volatile Thread thread;
 
     private static AlarmDataService alarmDataService;
 
@@ -40,20 +40,21 @@
         //UserInf user = new UserInf();
         //user.setUId(1001L);
         ServletContext servletContext = httpSession.getServletContext();
-        Thread thread = new Thread() {
+        thread = new Thread() {
             @Override
             public void run() {
                 try{
-                    Response res = alarmDataService.getWavRead4Socket(user,servletContext,httpSession);
-                    session.getBasicRemote().sendObject(new Response().set(1, res));
-                    sleep(2000);
+                    while (!currentThread().isInterrupted()) {
+                        Response res = alarmDataService.getWavRead4Socket(user, servletContext, httpSession);
+                        session.getBasicRemote().sendObject(new Response().set(1, res));
+                        sleep(2000);
+                    }
                 } catch (Exception e) {
                     this.interrupt();
                 }
             }
         };
         thread.start();
-        this.thread = thread;
     }
 
     @OnClose
@@ -62,15 +63,20 @@
         if(session.isOpen()){
             session.close();
         }
+        if (thread != null && thread.isAlive()) {
+            thread.interrupt();
+        }
     }
 
     @OnError
     public void onError(Throwable error) throws IOException {
         //error.printStackTrace();
-        thread.isInterrupted();
         if(session.isOpen()){
             session.close();
         }
+        if (thread != null && thread.isAlive()) {
+            thread.interrupt();
+        }
     }
 
 }

--
Gitblit v1.9.1