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