From 0143867c6907619385752e14214f622e3cba1196 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期一, 31 三月 2025 23:10:32 +0800 Subject: [PATCH] abe活化接口 --- src/main/java/com/whyc/mapper/AbeStateMapper.java | 6 src/main/java/com/whyc/pojo/db_abe_ram/AbeInf.java | 18 + src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestData.java | 50 +++++ src/main/java/com/whyc/service/AbeStateService.java | 24 ++ src/main/java/com/whyc/controller/AbeTestDataInfController.java | 30 +++ src/main/java/com/whyc/pojo/db_abe_ram/AbeRam.java | 48 ++++ src/main/java/com/whyc/webSocket/AbeStateSocket.java | 111 +++++++++++ src/main/java/com/whyc/mapper/AbeRamMapper.java | 6 src/main/java/com/whyc/service/AbeTestDataInfService.java | 83 ++++++++ src/main/java/com/whyc/pojo/db_abe_ram/AbeState.java | 69 ++++++ src/main/java/com/whyc/mapper/AbeTestDataInfMapper.java | 6 src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestDataInf.java | 54 +++++ src/main/java/com/whyc/controller/AbeTestDataController.java | 22 ++ src/main/java/com/whyc/service/AbeRamService.java | 24 ++ 14 files changed, 551 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/controller/AbeTestDataController.java b/src/main/java/com/whyc/controller/AbeTestDataController.java new file mode 100644 index 0000000..bb99284 --- /dev/null +++ b/src/main/java/com/whyc/controller/AbeTestDataController.java @@ -0,0 +1,22 @@ +package com.whyc.controller; + +import com.github.pagehelper.PageInfo; +import com.whyc.dto.Response; +import com.whyc.pojo.db_abe_testdata.AbeTestDataInf; +import com.whyc.service.AbeTestDataInfService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "娲诲寲娴嬭瘯鍗曚綋璁板綍") +@RestController +@RequestMapping("abeTestData") +public class AbeTestDataController { + + @Autowired + private AbeTestDataInfService service; + +} diff --git a/src/main/java/com/whyc/controller/AbeTestDataInfController.java b/src/main/java/com/whyc/controller/AbeTestDataInfController.java new file mode 100644 index 0000000..1ad489a --- /dev/null +++ b/src/main/java/com/whyc/controller/AbeTestDataInfController.java @@ -0,0 +1,30 @@ +package com.whyc.controller; + +import com.github.pagehelper.PageInfo; +import com.whyc.dto.Response; +import com.whyc.pojo.db_abe_testdata.AbeTestDataInf; +import com.whyc.service.AbeTestDataInfService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "娲诲寲娴嬭瘯鏁版嵁") +@RestController +@RequestMapping("abeTestDataInf") +public class AbeTestDataInfController { + + @Autowired + private AbeTestDataInfService service; + + @ApiOperation("鏌ヨ鍒嗛〉") + @GetMapping("getPage") + public Response<PageInfo<AbeTestDataInf>> getPage(@RequestParam int pageNum, @RequestParam int pageSize){ + return service.getPage(pageNum,pageSize); + } + + +} diff --git a/src/main/java/com/whyc/mapper/AbeRamMapper.java b/src/main/java/com/whyc/mapper/AbeRamMapper.java new file mode 100644 index 0000000..dc4117d --- /dev/null +++ b/src/main/java/com/whyc/mapper/AbeRamMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_abe_ram.AbeRam; + +public interface AbeRamMapper extends CustomMapper<AbeRam>{ +} diff --git a/src/main/java/com/whyc/mapper/AbeStateMapper.java b/src/main/java/com/whyc/mapper/AbeStateMapper.java new file mode 100644 index 0000000..a87d860 --- /dev/null +++ b/src/main/java/com/whyc/mapper/AbeStateMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_abe_ram.AbeState; + +public interface AbeStateMapper extends CustomMapper<AbeState>{ +} diff --git a/src/main/java/com/whyc/mapper/AbeTestDataInfMapper.java b/src/main/java/com/whyc/mapper/AbeTestDataInfMapper.java new file mode 100644 index 0000000..e77b6e8 --- /dev/null +++ b/src/main/java/com/whyc/mapper/AbeTestDataInfMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_abe_testdata.AbeTestDataInf; + +public interface AbeTestDataInfMapper extends CustomMapper<AbeTestDataInf>{ +} diff --git a/src/main/java/com/whyc/pojo/db_abe_ram/AbeInf.java b/src/main/java/com/whyc/pojo/db_abe_ram/AbeInf.java new file mode 100644 index 0000000..413a9c4 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_abe_ram/AbeInf.java @@ -0,0 +1,18 @@ +package com.whyc.pojo.db_abe_ram; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +@TableName(schema = "db_abe_ram",value = "tb_abe_inf") +@ToString +@Data +public class AbeInf { + + private Integer id; + private String abeIp; + private String abeName; + @ApiModelProperty("abe璁惧瀵瑰簲鐨勫崟浣撶紪鍙�") + private Integer abeMonId; +} diff --git a/src/main/java/com/whyc/pojo/db_abe_ram/AbeRam.java b/src/main/java/com/whyc/pojo/db_abe_ram/AbeRam.java new file mode 100644 index 0000000..647056c --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_abe_ram/AbeRam.java @@ -0,0 +1,48 @@ +package com.whyc.pojo.db_abe_ram; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * 娲诲寲鐘舵�佽〃 + */ +@TableName(schema = "db_abe_ram",value = "tb_abe_ram") +@ToString +@Data +public class AbeRam { + + @ApiModelProperty("鑷涓婚敭") + private Integer num; + @ApiModelProperty("鍗曚綋缂栧彿") + private Integer monId; + @ApiModelProperty("璁板綍鏃堕棿") + private Date recordTime; + @ApiModelProperty("鍗曚綋鐢靛帇") + private Float monVol; + @ApiModelProperty("鍗曚綋娓╁害") + private Float monTmp; + @ApiModelProperty("鍗曚綋鍐呴樆") + private Float monRes; + @ApiModelProperty("琚祴鍗曚綋缂栧彿") + private Integer testMonNum; + @ApiModelProperty("娴嬭瘯鐘舵��") + private Integer testState; + @ApiModelProperty("鐢垫睜鐢靛帇") + private Float groupVol; + @ApiModelProperty("鐢垫睜鐢垫祦") + private Float groupCurr; + @ApiModelProperty("娴嬭瘯鏃堕暱") + private Integer testTimeLong; + @ApiModelProperty("娴嬭瘯瀹归噺") + private Float testCap; + @ApiModelProperty("闈欑疆鏃堕棿") + private Integer waitTime; + @ApiModelProperty("娲诲寲娆℃暟") + private Integer cycCount; + @ApiModelProperty("宸ヤ綔鐘舵�乕0-鏃犳祴璇� 253-鏀剧數娴嬭瘯 252-鍏呯數娴嬭瘯 249-娲诲寲娴嬭瘯]") + private Integer nowTestState; +} diff --git a/src/main/java/com/whyc/pojo/db_abe_ram/AbeState.java b/src/main/java/com/whyc/pojo/db_abe_ram/AbeState.java new file mode 100644 index 0000000..37e1e80 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_abe_ram/AbeState.java @@ -0,0 +1,69 @@ +package com.whyc.pojo.db_abe_ram; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * 娲诲寲鐘舵�佽〃 + * CREATE TABLE db_abe_ram.tb_abe_state( + * num bigint NOT NULL DEFAULT nextval('db_abe_ram.tb_abe_state_auto'::regclass), + * abe_id bigint NOT NULL DEFAULT 1, + * record_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone, + * now_mon_id integer NOT NULL DEFAULT 1, + * cnn_state integer NOT NULL DEFAULT 0, + * comm_errcount integer NOT NULL DEFAULT 0, + * comm_totalcount integer NOT NULL DEFAULT 0, + * PRIMARY KEY (num), + * CONSTRAINT idx_abe_id UNIQUE ( abe_id) + * ) + * + * ; + * + * ALTER TABLE db_abe_ram.tb_abe_state + * OWNER TO sysdba; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.num IS '鑷涓婚敭'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.abe_id IS 'ABE鐨刬d鍙�'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.record_time IS '鏇存柊涓嬫椂闂�'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.now_mon_id IS '褰撳墠鎺ュ叆鍗曚綋缂栧彿'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.cnn_state IS '杩炴帴鐘舵�侊紙0-鏈繛鎺� 1-宸茶繛鎺ワ級'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.comm_errcount IS '閫氫俊閿欒璁℃暟'; + * + * COMMENT ON COLUMN db_abe_ram.tb_abe_state.comm_totalcount IS '閫氫俊璁℃暟'; + * + * COMMENT ON CONSTRAINT idx_abe_id ON db_abe_ram.tb_abe_state IS '璁惧ID'; + */ +@TableName(schema = "db_abe_ram",value = "tb_abe_state") +@ToString +@Data +public class AbeState { + + @ApiModelProperty("鑷涓婚敭") + private Integer num; + @ApiModelProperty("ABE鐨刬d鍙�") + private Integer abeId; + @ApiModelProperty("鏇存柊涓嬫椂闂�") + private Date recordTime; + @ApiModelProperty("褰撳墠鎺ュ叆鍗曚綋缂栧彿") + private Integer nowMonId; + @ApiModelProperty("杩炴帴鐘舵�侊紙0-鏈繛鎺� 1-宸茶繛鎺ワ級") + private Integer cnnState; + @ApiModelProperty("閫氫俊閿欒璁℃暟") + @TableField("comm_errcount") + private Integer commErrCount; + @ApiModelProperty("閫氫俊璁℃暟") + @TableField("comm_totalcount") + private Integer commTotalCount; + + +} diff --git a/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestData.java b/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestData.java new file mode 100644 index 0000000..89370a1 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestData.java @@ -0,0 +1,50 @@ +package com.whyc.pojo.db_abe_testdata; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * + */ +@TableName(schema = "db_abe_testdata",value = "tb_abe_testdata") +@ToString +@Data +public class AbeTestData { + + @ApiModelProperty("鑷涓婚敭") + private Integer num; + @ApiModelProperty("鍗曚綋ID") + private Integer monId; + @ApiModelProperty("娴嬭瘯娆℃暟") + private Integer testRecordCount; + @ApiModelProperty("璁板綍鏃堕棿") + private Date recordTime; + @ApiModelProperty("娴嬭瘯寮�濮嬫椂闂�") + @TableField("test_starttime") + private Date testStartTime; + @ApiModelProperty("娴嬭瘯绫诲瀷") + private Integer testType; + @ApiModelProperty("璁板綍绗旀暟") + private Integer recordNum; + @ApiModelProperty("娴嬭瘯鏃堕暱") + @TableField("test_timelong") + private Integer testTimeLong; + @ApiModelProperty("鐢垫睜鐢靛帇") + private Float groupVol; + @ApiModelProperty("娴嬭瘯鐢垫祦") + private Float testCurr; + @ApiModelProperty("娴嬭瘯瀹归噺") + private Float testCap; + @ApiModelProperty("鍗曚綋鐢靛帇") + private Float monVol; + @ApiModelProperty("鍗曚綋娓╁害") + private Float monTmp; + @ApiModelProperty("鍗曚綋鍐呴樆") + private Float monRes; + +} diff --git a/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestDataInf.java b/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestDataInf.java new file mode 100644 index 0000000..d63dfb7 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_abe_testdata/AbeTestDataInf.java @@ -0,0 +1,54 @@ +package com.whyc.pojo.db_abe_testdata; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * 娴嬭瘯淇℃伅琛� + */ +@TableName(schema = "db_abe_testdata",value = "tb_abe_testdata_inf") +@ToString +@Data +public class AbeTestDataInf { + + @ApiModelProperty("鑷涓婚敭") + private Integer num; + @ApiModelProperty("鍗曚綋ID") + private Integer monId; + @ApiModelProperty("娴嬭瘯绗旀暟") + private Integer testRecordCount; + @ApiModelProperty("璁板綍鏃堕棿") + private Date recordTime; + @ApiModelProperty("璁板綍绗旀暟") + private Integer recordNum; + @ApiModelProperty("娴嬭瘯寮�濮嬫椂闂�") + @TableField("test_starttime") + private Date testStartTime; + @ApiModelProperty("娴嬭瘯绫诲瀷[2-鍏呯數 3-鏀剧數 4-娲诲寲]") + private Integer testType; + @ApiModelProperty(" 娴嬭瘯鏃堕暱") + @TableField("test_timelong") + private Integer testTimeLong; + @ApiModelProperty("鍋滄鍘熷洜") + @TableField("test_stoptype") + private Integer testStopType; + @ApiModelProperty("缁勭鐢靛帇") + private Float groupVol; + @ApiModelProperty("娴嬭瘯鐢垫祦") + private Float testCurr; + @ApiModelProperty("娴嬭瘯瀹归噺") + private Float testCap; + + @TableField(exist = false) + private Float monVol; + @TableField(exist = false) + private Float monTmp; + @TableField(exist = false) + private Float monRes; + +} diff --git a/src/main/java/com/whyc/service/AbeRamService.java b/src/main/java/com/whyc/service/AbeRamService.java new file mode 100644 index 0000000..abe8177 --- /dev/null +++ b/src/main/java/com/whyc/service/AbeRamService.java @@ -0,0 +1,24 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.whyc.dto.Response; +import com.whyc.mapper.AbeRamMapper; +import com.whyc.pojo.db_abe_ram.AbeRam; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AbeRamService { + + @Resource + private AbeRamMapper mapper; + + public Response<AbeRam> get() { + QueryWrapper<AbeRam> query = Wrappers.query(); + query.last(" limit 1"); + AbeRam abeRam = mapper.selectOne(query); + return new Response<AbeRam>().set(1,abeRam); + } +} diff --git a/src/main/java/com/whyc/service/AbeStateService.java b/src/main/java/com/whyc/service/AbeStateService.java new file mode 100644 index 0000000..9fa1b70 --- /dev/null +++ b/src/main/java/com/whyc/service/AbeStateService.java @@ -0,0 +1,24 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.whyc.dto.Response; +import com.whyc.mapper.AbeStateMapper; +import com.whyc.pojo.db_abe_ram.AbeState; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AbeStateService { + + @Resource + private AbeStateMapper mapper; + + public Response<AbeState> get() { + QueryWrapper<AbeState> query = Wrappers.query(); + query.last(" limit 1"); + AbeState abeState = mapper.selectOne(query); + return new Response<AbeState>().set(1,abeState); + } +} diff --git a/src/main/java/com/whyc/service/AbeTestDataInfService.java b/src/main/java/com/whyc/service/AbeTestDataInfService.java new file mode 100644 index 0000000..92f8372 --- /dev/null +++ b/src/main/java/com/whyc/service/AbeTestDataInfService.java @@ -0,0 +1,83 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.whyc.dto.Response; +import com.whyc.mapper.AbeTestDataInfMapper; +import com.whyc.mapper.CallBack; +import com.whyc.pojo.db_abe_testdata.AbeTestData; +import com.whyc.pojo.db_abe_testdata.AbeTestDataInf; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class AbeTestDataInfService { + + @Resource + private AbeTestDataInfMapper mapper; + + @Autowired + private JdbcSqlExecuteService jdbcSqlExecuteService; + + public Response<PageInfo<AbeTestDataInf>> getPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum,pageSize); + QueryWrapper<AbeTestDataInf> query = Wrappers.query(); + query.orderByDesc("record_time"); + List<AbeTestDataInf> list = mapper.selectList(query); + //瀵筶ist杩涜monId鍒嗙被,鏉ヨ繘琛屽崟浣撹〃鏌ヨ + Map<Integer, List<AbeTestDataInf>> monIdMap = + list.stream().collect(Collectors.groupingBy(AbeTestDataInf::getMonId)); + for (Integer monId : monIdMap.keySet()) { + List<AbeTestDataInf> dataList = monIdMap.get(monId); + List<Integer> testRecordCountList = dataList.stream().map(AbeTestDataInf::getTestRecordCount).collect(Collectors.toList()); + List<AbeTestData> monDataList = getList(monId, testRecordCountList); + for (AbeTestDataInf data : dataList) { + for (AbeTestData monData : monDataList) { + if (data.getTestRecordCount().equals(monData.getTestRecordCount())) { + data.setMonVol(monData.getMonVol()); + data.setMonTmp(monData.getMonTmp()); + data.setMonRes(monData.getMonRes()); + } + } + } + + } + //鍒嗛〉 + PageInfo<AbeTestDataInf> pageInfo = new PageInfo(list); + return new Response<PageInfo<AbeTestDataInf>>().set(1,pageInfo); + + } + + private List<AbeTestData> getList(int monId,List<Integer> testRecordCountList) { + String testRecordCount = testRecordCountList.stream().map(String::valueOf).collect(Collectors.joining(",","(",")")); + String sql = "select test_record_count,mon_vol,mon_tmp,mon_res from db_abe_testdata.tb_abe_testdata_"+monId +" where test_record_count in "+testRecordCount; + List<AbeTestData> monDatalist = jdbcSqlExecuteService.executeQuery_call(sql, new CallBack<AbeTestData>() { + + @Override + public List<AbeTestData> getResults(ResultSet rs) throws SQLException { + LinkedList<AbeTestData> temp = new LinkedList<>(); + while (rs.next()) { + AbeTestData abeTestData = new AbeTestData(); + abeTestData.setTestRecordCount(rs.getInt("test_record_count")); + abeTestData.setMonVol(rs.getFloat("mon_vol")); + abeTestData.setMonTmp(rs.getFloat("mon_tmp")); + abeTestData.setMonRes(rs.getFloat("mon_res")); + temp.add(abeTestData); + } + return temp; + } + }); + return monDatalist; + + } +} diff --git a/src/main/java/com/whyc/webSocket/AbeStateSocket.java b/src/main/java/com/whyc/webSocket/AbeStateSocket.java new file mode 100644 index 0000000..3dd9326 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/AbeStateSocket.java @@ -0,0 +1,111 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.PageAlarm; +import com.whyc.dto.Response; +import com.whyc.pojo.db_abe_ram.AbeRam; +import com.whyc.pojo.db_abe_ram.AbeState; +import com.whyc.service.AbeRamService; +import com.whyc.service.AbeStateService; +import com.whyc.service.BattStationTempAlarmService; +import com.whyc.util.ActionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.Map; + + +/** + * 娲诲寲浠姸鎬� + */ +@Component +@ServerEndpoint(value = "/abeState",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class AbeStateSocket { + private Session session; + + private Thread thread; + + private static AbeRamService ramService; + + private static AbeStateService stateService; + + private volatile boolean runFlag = true; + + private volatile Map<String, Thread> threadMap = new HashMap<>(); + + private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); + + @Autowired + public void setRamService(AbeRamService ramService) { + AbeStateSocket.ramService = ramService; + } + + @Autowired + public void setStateService(AbeStateService stateService) { + AbeStateSocket.stateService = stateService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config) { + this.session = session; + thread = new Thread("Thread_AbeStateSocket") { + @Override + public void run() { + while (runFlag && !isInterrupted()) { + Thread thread = currentThread(); + threadFlagMap.put(thread.getId(), true); + try { + if (session.isOpen()) { + //鎺ㄩ�佷俊鎭� + synchronized (session) { + Response<AbeState> state = stateService.get(); + Response<AbeRam> ram = ramService.get(); + Map<String, Response> resMap = new HashMap<>(); + resMap.put("state",state); + resMap.put("ram",ram); + session.getBasicRemote().sendObject(new Response<>().set(1, resMap)); + } + threadFlagMap.put(thread.getId(), false); + } + sleep(4000); + } catch (Exception e) { + interrupt(); + } + } + } + }; + thread.start(); + threadFlagMap.put(thread.getId(),true); + //鍋滄鑰佺殑socket绾跨▼ + Thread threadBefore = threadMap.get(session.getId()); + if(threadBefore !=null && threadBefore.isAlive()){ + while (threadFlagMap.get(threadBefore.getId())){ + } + threadBefore.interrupt(); + } + //灏嗙嚎绋嬪瓨鍌�,渚夸簬璋冪敤瀹氫綅 + threadMap.put(session.getId(), this.thread); + } + + @OnClose + public void onClose(CloseReason closeReason){ + System.err.println("closeReason = " + closeReason); + runFlag = false; + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } + + @OnError + public void onError(Throwable error) { + error.printStackTrace(); + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } +} \ No newline at end of file -- Gitblit v1.9.1