From 65cfcf4c8d653ddc25db1c14493e14374c121f0a Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Wed, 29 Nov 2023 15:46:29 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9remote=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/god/base/remote/RemoteCarService.java | 4 ++-- .../god/base/remote/factory/RemoteCarFallbackFactory.java | 2 +- .../java/com/god/base/server/controller/CarController.java | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/car-base-remote/src/main/java/com/god/base/remote/RemoteCarService.java b/car-base-remote/src/main/java/com/god/base/remote/RemoteCarService.java index 715a5fc..b52df02 100644 --- a/car-base-remote/src/main/java/com/god/base/remote/RemoteCarService.java +++ b/car-base-remote/src/main/java/com/god/base/remote/RemoteCarService.java @@ -17,8 +17,8 @@ import org.springframework.web.bind.annotation.*; public interface RemoteCarService { - @GetMapping("/car/list/{vinId}") - public Result list(@PathVariable String vinId); + @GetMapping("/car/list") + public Result list(@RequestParam("carVinId") String carVinId); @PostMapping("/baseFence/fenceById") public Result fenceById(@RequestParam("fenceId") Integer fenceId); diff --git a/car-base-remote/src/main/java/com/god/base/remote/factory/RemoteCarFallbackFactory.java b/car-base-remote/src/main/java/com/god/base/remote/factory/RemoteCarFallbackFactory.java index af2b7ae..79bac35 100644 --- a/car-base-remote/src/main/java/com/god/base/remote/factory/RemoteCarFallbackFactory.java +++ b/car-base-remote/src/main/java/com/god/base/remote/factory/RemoteCarFallbackFactory.java @@ -26,7 +26,7 @@ public class RemoteCarFallbackFactory implements FallbackFactory list(String vinId) { + public Result list(String carVinId) { return Result.error("保存操作日志失败:" + cause.getMessage()); } diff --git a/car-base-server/src/main/java/com/god/base/server/controller/CarController.java b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java index 54d3cd1..724827e 100644 --- a/car-base-server/src/main/java/com/god/base/server/controller/CarController.java +++ b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java @@ -46,11 +46,10 @@ public class CarController extends BaseController { /** * 根据vin查询车辆信息管理列表 */ - @RequiresPermissions - @GetMapping("/list/{vinId}") - public Result list(@PathVariable String vinId){ + @GetMapping("/list") + public Result list(@RequestParam("carVinId") String carVinId){ - Car list = carService.selectCarInfoList(vinId); + Car list = carService.selectCarInfoList(carVinId); return Result.success(list); } From 13008cc2bba1ed9e378d829e9790b42a4ebdf682 Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Wed, 29 Nov 2023 16:56:22 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E5=A2=9E=E6=B7=BB=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E8=BD=A6=E8=BE=86VIN=E6=9F=A5=E8=AF=A2=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E5=9B=B4=E6=A0=8F=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/god/base/domain/request/FenceQueryRequest.java | 6 ++++++ .../com/god/base/server/service/impl/FenceServiceImpl.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/car-base-common/src/main/java/com/god/base/domain/request/FenceQueryRequest.java b/car-base-common/src/main/java/com/god/base/domain/request/FenceQueryRequest.java index a984ae0..ce21cb4 100644 --- a/car-base-common/src/main/java/com/god/base/domain/request/FenceQueryRequest.java +++ b/car-base-common/src/main/java/com/god/base/domain/request/FenceQueryRequest.java @@ -40,4 +40,10 @@ public class FenceQueryRequest extends PageQuery { */ private Integer driveStatus; + + /** + * 车辆VIN + */ + private String carVinId; + } diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java index f6a80e1..a7cfbb1 100644 --- a/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java @@ -135,6 +135,10 @@ public class FenceServiceImpl extends ServiceImpl implement //精确查询 lambdaQueryWrapper.eq(Fence::getDriveStatus,fenceQueryRequest.getDriveStatus()); } + //判断车辆VIN是否为空 + if (StringUtils.isNotEmpty(fenceQueryRequest.getCarVinId())) { + lambdaQueryWrapper.eq(Fence::getCarVinId , fenceQueryRequest.getCarVinId()); + } //分页 Page fencePage = fenceQueryRequest.buildPage(); log.info("分页查询:[ {} ]", JSONObject.toJSONString(fencePage)); From 340691e8e1ffa6ba6075d5086544ee91c744a558 Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Wed, 29 Nov 2023 22:09:07 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AD=98=E5=82=A8redis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/service/impl/FenceServiceImpl.java | 2 +- .../base/server/utils/CarFenceMonitor.java | 77 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java index a7cfbb1..abab9f5 100644 --- a/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java @@ -84,7 +84,7 @@ public class FenceServiceImpl extends ServiceImpl implement // 将围栏坐标存储到redis中 // key 围栏编号 // value 围栏坐标信息 - redisService.setCacheObject(entity.getFenceId()+"",fenceLocation); +// redisService.setCacheObject(entity.getFenceId()+"",fenceLocation); boolean update = super.updateById(entity); if (!update){ log.warn("编辑围栏[/-{}-/]未成功! 请求参数:{}", diff --git a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java new file mode 100644 index 0000000..bb08d3b --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java @@ -0,0 +1,77 @@ +package com.god.base.server.utils; + +import com.god.base.domain.Car; +import com.god.base.domain.Fence; +import com.god.base.domain.request.FenceQueryRequest; +import com.god.base.server.service.CarService; +import com.god.base.server.service.FenceService; +import com.god.common.core.domain.Result; +import com.god.common.core.web.page.TableDataInfo; +import com.god.common.redis.service.RedisService; +import com.god.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +/** + * 监控车辆围栏实时数据 + * + * @author LouZhiSHuo + * @Date 2023/11/29 21:31 + **/ +@Component +public class CarFenceMonitor { + + + @Autowired + private CarService carService; + @Autowired + private FenceService fenceService; + @Autowired + private RedisService redisService; + + public void getCarFencesList(){ + + //获取车辆信息 + Result> listResult = carService.carList(String.valueOf(SecurityUtils.getUserId())); + List dataCar = listResult.getData(); + + if (dataCar.size() <= 0) { + throw new RuntimeException("查无管理车辆"); + } + + for (Car car : dataCar) { + //单线程获取车辆围栏信息 + new Thread(() -> { + FenceQueryRequest fenceQueryRequest = new FenceQueryRequest(); + + fenceQueryRequest.setCarVinId(car.getCarVinId()); + //获取车辆围栏信息 + TableDataInfo fenceTableDataInfo = fenceService.fenceListAndPage(fenceQueryRequest); + List rows = fenceTableDataInfo.getRows(); + + if (rows.size() <= 0) { + throw new RuntimeException("该车辆未绑定围栏"); + } + + //容器 + List locationList = new ArrayList<>(); + + for (Fence row : rows) { + locationList.add(row.getFenceLocation()); + } + + //存储redis + redisService.setCacheList(car.getCarVinId()+"fence",locationList); + + }).start(); + } + + + + + + } +} From 059661d3db6e9f926eb80efa99da0316a992c950 Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Thu, 30 Nov 2023 13:39:35 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AD=98=E5=82=A8redis=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/god/base/server/utils/CarFenceMonitor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java index bb08d3b..e3acf89 100644 --- a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java +++ b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java @@ -9,6 +9,7 @@ import com.god.common.core.domain.Result; import com.god.common.core.web.page.TableDataInfo; import com.god.common.redis.service.RedisService; import com.god.common.security.utils.SecurityUtils; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -22,6 +23,7 @@ import java.util.List; * @Date 2023/11/29 21:31 **/ @Component +@Log4j2 public class CarFenceMonitor { @@ -33,6 +35,7 @@ public class CarFenceMonitor { private RedisService redisService; public void getCarFencesList(){ + log.info("开始获取车辆围栏信息"); //获取车辆信息 Result> listResult = carService.carList(String.valueOf(SecurityUtils.getUserId())); From 21743834793e2db4a8809ef2aaca663ceaaf1a38 Mon Sep 17 00:00:00 2001 From: one Date: Thu, 30 Nov 2023 13:41:45 +0800 Subject: [PATCH 05/11] commit --- ...ingframework.boot.autoconfigure.AutoConfiguration.imports | 3 ++- car-base-server/pom.xml | 5 ----- .../src/main/java/com/god/base/server/mapper/CarMapper.java | 1 + 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 6d2b4cc..64815ab 100644 --- a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ -com.god.base.remote.factory.RemoteCarFallbackFactory +com.god.base.remote.factory.RemoteCarService +com.god.base.remote.factory.RemoteFenceService diff --git a/car-base-server/pom.xml b/car-base-server/pom.xml index 88cafb4..40aa3a3 100644 --- a/car-base-server/pom.xml +++ b/car-base-server/pom.xml @@ -78,11 +78,6 @@ 3.4.2 - - com.baomidou - mybatis-plus-boot-starter - 3.4.2 - diff --git a/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java index fdb1807..fc014c3 100644 --- a/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java +++ b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java @@ -1,5 +1,6 @@ package com.god.base.server.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.god.base.domain.Car; import com.god.base.domain.request.CarRequest; From 200adcb3f93d87b8239084601d3fa1da4b16fefa Mon Sep 17 00:00:00 2001 From: one Date: Thu, 30 Nov 2023 14:12:29 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9remote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ringframework.boot.autoconfigure.AutoConfiguration.imports | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 64815ab..5b47a27 100644 --- a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,2 @@ -com.god.base.remote.factory.RemoteCarService -com.god.base.remote.factory.RemoteFenceService +com.god.base.remote.RemoteCarService +com.god.base.remote.RemoteFenceService From 540796a23b82d9d99cffe730fb2bbcf34c45eca0 Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Thu, 30 Nov 2023 14:26:31 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AD=98=E5=82=A8redisBean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/god/base/server/utils/CarFenceMonitor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java index e3acf89..56b1b88 100644 --- a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java +++ b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java @@ -11,6 +11,7 @@ import com.god.common.redis.service.RedisService; import com.god.common.security.utils.SecurityUtils; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -34,6 +35,7 @@ public class CarFenceMonitor { @Autowired private RedisService redisService; + @Bean public void getCarFencesList(){ log.info("开始获取车辆围栏信息"); From 7c8b1250438539697cc26145782d10878493bf9d Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Thu, 30 Nov 2023 14:31:15 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E6=B6=88=E6=81=AFBean=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/god/base/server/utils/CarFenceMonitor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java index 56b1b88..b997ab2 100644 --- a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java +++ b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java @@ -52,6 +52,8 @@ public class CarFenceMonitor { new Thread(() -> { FenceQueryRequest fenceQueryRequest = new FenceQueryRequest(); + fenceQueryRequest.setPage(1); + fenceQueryRequest.setPageSize(100); fenceQueryRequest.setCarVinId(car.getCarVinId()); //获取车辆围栏信息 TableDataInfo fenceTableDataInfo = fenceService.fenceListAndPage(fenceQueryRequest); From 31d1a53f78220ee76ed3f4b2124bb178ff8b9b57 Mon Sep 17 00:00:00 2001 From: ZhiShuo_Lou <13209945+zhishuo-lou@user.noreply.gitee.com> Date: Thu, 30 Nov 2023 14:37:31 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=9A=84=E5=9B=B4=E6=A0=8F=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?Bean=E5=AE=B9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/god/base/server/utils/CarFenceMonitor.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java index b997ab2..37a6b13 100644 --- a/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java +++ b/car-base-server/src/main/java/com/god/base/server/utils/CarFenceMonitor.java @@ -35,6 +35,7 @@ public class CarFenceMonitor { @Autowired private RedisService redisService; + @Bean public void getCarFencesList(){ log.info("开始获取车辆围栏信息"); @@ -63,11 +64,11 @@ public class CarFenceMonitor { throw new RuntimeException("该车辆未绑定围栏"); } - //容器 - List locationList = new ArrayList<>(); + //围栏对象集合 + List locationList = new ArrayList<>(); for (Fence row : rows) { - locationList.add(row.getFenceLocation()); + locationList.add(row); } //存储redis From cb692826f5669753d400c222345a5c821567ace0 Mon Sep 17 00:00:00 2001 From: one Date: Thu, 30 Nov 2023 14:39:20 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=9B=B4=E6=94=B9remote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ringframework.boot.autoconfigure.AutoConfiguration.imports | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 5b47a27..7de8ac0 100644 --- a/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/car-base-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,2 @@ -com.god.base.remote.RemoteCarService -com.god.base.remote.RemoteFenceService +com.god.base.remote.factory.RemoteCarFallbackFactory +com.god.base.remote.factory.RemoteFenceFallbackFactory From 614ad402d136a7599ecfcddc3d6e74316d4cb919 Mon Sep 17 00:00:00 2001 From: one Date: Thu, 30 Nov 2023 14:43:52 +0800 Subject: [PATCH 11/11] =?UTF-8?q?webSocket=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- car-base-server/pom.xml | 6 +- .../webSocket/config/WebSocketConfig.java | 18 -- .../controller/WebSocketBatchSever.java | 29 ---- .../webSocket/controller/WebSocketServer.java | 156 ------------------ .../server/webSocket/entity/SocketData.java | 21 --- .../webSocket/entity/VehicleAllData.java | 17 -- .../webSocket/handler/SocketBatchHandler.java | 57 ------- .../webSocket/handler/SocketHandler.java | 42 ----- 8 files changed, 1 insertion(+), 345 deletions(-) delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/config/WebSocketConfig.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketBatchSever.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketServer.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/entity/SocketData.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/entity/VehicleAllData.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketBatchHandler.java delete mode 100644 car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketHandler.java diff --git a/car-base-server/pom.xml b/car-base-server/pom.xml index 40aa3a3..1e70f9b 100644 --- a/car-base-server/pom.xml +++ b/car-base-server/pom.xml @@ -29,11 +29,7 @@ spring-cloud-starter-alibaba-nacos-discovery - - - org.springframework.boot - spring-boot-starter-websocket - + diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/config/WebSocketConfig.java b/car-base-server/src/main/java/com/god/base/server/webSocket/config/WebSocketConfig.java deleted file mode 100644 index 2aa1eb2..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.god.base.server.webSocket.config; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * WebSocketConfig - * 开始webSocket - * WenHao.Sao - */ -@Configuration -public class WebSocketConfig { - - @Bean - public ServerEndpointExporter serverEndpointExporter(){ - return new ServerEndpointExporter(); - } -} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketBatchSever.java b/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketBatchSever.java deleted file mode 100644 index 2e21c10..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketBatchSever.java +++ /dev/null @@ -1,29 +0,0 @@ -//package com.god.base.server.webSocket.controller; -// -//import com.god.base.server.webSocket.handler.SocketBatchHandler; -//import lombok.extern.log4j.Log4j2; -//import org.springframework.stereotype.Component; -// -//import javax.websocket.OnOpen; -//import javax.websocket.Session; -//import javax.websocket.server.ServerEndpoint; -// -///** -// * @ClassName WebSocketBatchSever -// * @Author WenHao.Sao -// */ -//@ServerEndpoint("/car/batch") -//@Component -//@Log4j2 -//public class WebSocketBatchSever { -// -// /** -// * 连接建立成功方法 -// */ -// @OnOpen -// public void onOpen(Session session){ -// log.info("车辆大屏新连接" + session.getId()); -// SocketBatchHandler.sessions.add(session); -// } -// -//} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketServer.java b/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketServer.java deleted file mode 100644 index 9abc457..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/controller/WebSocketServer.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.god.base.server.webSocket.controller; - -import java.net.http.WebSocket; -import java.util.Arrays; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArraySet; - -import javax.websocket.*; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; - -import com.alibaba.fastjson.JSON; -import org.springframework.stereotype.Component; - -import lombok.extern.slf4j.Slf4j; - -@Component -@Slf4j -@ServerEndpoint("/websocket/{vin}") // 接口路径 ws://localhost:8087/webSocket/userId; -public class WebSocketServer { - - //与某个客户端的连接会话,需要通过它来给客户端发送数据 - private Session session; - /** - * 用户ID - */ - private String userId; - - //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。 - //虽然@Component默认是单例模式的,但springboot还是会为每个websocket连接初始化一个bean,所以可以用一个静态set保存起来。 - // 注:底下WebSocket是当前类名 - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - // 用来存在线连接用户信息 - private static ConcurrentHashMap sessionPool = new ConcurrentHashMap(); - - /** - * 链接成功调用的方法 - */ - @OnOpen - public void onOpen(Session session, @PathParam(value="vin")String userId) { - try { - this.session = session; - this.userId = userId; - webSockets.add(this); - sessionPool.put(userId, session); - log.info("【websocket消息】有新的连接,总数为:"+webSockets.size()); - //发送实时轨迹数据 - double[][] arr = new double[][]{ - {116.478935,39.997761}, - {116.478939,39.997825}, - {116.478912,39.998549}, - {116.478998,39.998555}, - {116.479282,39.99856}, - {116.479658,39.998528}, - {116.480151,39.998453}, - {116.480784,39.998302}, - {116.481149,39.998184}, - {116.481573,39.997997}, - {116.481863,39.997846}, - {116.482072,39.997718}, - {116.482362,39.997718}, - {116.483633,39.998935}, - {116.48367,39.998968}, - {116.484648,39.999861} - }; - - for (double[] doubles : arr) { - Thread.sleep(500); - String string = Arrays.toString(doubles); - System.out.println(string); - Thread.sleep(1000); - sendOneMessage(userId , string); - } - } catch (Exception e) { - } - } - - /** - * 链接关闭调用的方法 - */ - @OnClose - public void onClose() { - try { - webSockets.remove(this); - sessionPool.remove(this.userId); - log.info("【websocket消息】连接断开,总数为:"+webSockets.size()); - } catch (Exception e) { - } - } - /** - * 收到客户端消息后调用的方法 - * - * @param message - * @param session - */ - @OnMessage - public void onMessage(String message,Session session) { - log.info("【websocket消息】收到客户端消息:"+message); - } - - /** 发送错误时的处理 - * @param session - * @param error - */ - @OnError - public void onError(Session session, Throwable error) { - - log.error("用户错误,原因:"+error.getMessage()); - error.printStackTrace(); - } - - - // 此为广播消息 - public void sendAllMessage(String message) { - log.info("【websocket消息】广播消息:"+message); - for(WebSocketServer webSocket : webSockets) { - try { - if(webSocket.session.isOpen()) { - webSocket.session.getAsyncRemote().sendText(JSON.toJSONString(message)); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - // 此为单点消息 - public void sendOneMessage(String userId, String message) { - Session session = sessionPool.get(userId); - if (session != null&&session.isOpen()) { - try { - log.info("【websocket消息】 单点消息:"+message); - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - // 此为单点消息(多人) - public void sendMoreMessage(String[] userIds, String message) { - for(String userId:userIds) { - Session session = sessionPool.get(userId); - if (session != null&&session.isOpen()) { - try { - log.info("【websocket消息】 单点消息:"+message); - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - } - -} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/entity/SocketData.java b/car-base-server/src/main/java/com/god/base/server/webSocket/entity/SocketData.java deleted file mode 100644 index b6a50b8..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/entity/SocketData.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.god.base.server.webSocket.entity; - -import lombok.Data; - -import javax.websocket.Session; - -/** - * @ClassName SocketData - * @Author WenHao.Sao - */ -@Data -public class SocketData { - /** - * vin - */ - private String vin; - /** - *连接对象 - */ - private Session session; -} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/entity/VehicleAllData.java b/car-base-server/src/main/java/com/god/base/server/webSocket/entity/VehicleAllData.java deleted file mode 100644 index 5750207..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/entity/VehicleAllData.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.god.base.server.webSocket.entity; - -import com.god.base.domain.VehicleMessage; -import lombok.Data; - -import java.util.List; - -/** - * @ClassName VehicleAllData - * @Author WenHao.Sao - */ -@Data -public class VehicleAllData { - private List messages; - - private String info; -} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketBatchHandler.java b/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketBatchHandler.java deleted file mode 100644 index 849aca3..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketBatchHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -//package com.god.base.server.webSocket.handler; -// -//import com.alibaba.fastjson.JSON; -//import com.god.base.domain.VehicleMessage; -//import com.god.base.common.constant.RedisConstant; -//import com.god.base.server.mapper.CarMapper; -//import com.god.base.server.webSocket.entity.VehicleAllData; -//import lombok.extern.log4j.Log4j2; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.data.redis.core.RedisTemplate; -//import org.springframework.scheduling.annotation.Scheduled; -//import org.springframework.stereotype.Component; -// -//import javax.websocket.Session; -//import java.util.List; -//import java.util.concurrent.CopyOnWriteArrayList; -//import java.util.stream.Collectors; -// -///** -// * @author swh的mac -// * @Date 2023/11/20 14:37 -// */ -//@Log4j2 -//@Component -//public class SocketBatchHandler { -// public static CopyOnWriteArrayList sessions = new CopyOnWriteArrayList<>(); -// -// @Autowired -// private CarMapper carMapper; -// -// @Autowired -// private RedisTemplate redisTemplate; -// -// @Scheduled(cron = "0/1 * * * * ?") -// public void sendMessageFlush(){ -// for (Session session : sessions) { -// List ids = carMapper.getOnlineCarIds(); -// List messages = ids.stream().map(id -> { -// VehicleMessage message = (VehicleMessage) redisTemplate.opsForValue().get(RedisConstant.CURRENT_INFO + ":" + id); -// return message; -// }).collect(Collectors.toList()); -// Integer day = (Integer) redisTemplate.opsForValue().get(RedisConstant.VEHICLE_INFO_TOKEN+RedisConstant.CURRENT_DAY_FAULT); -// Integer month = (Integer) redisTemplate.opsForValue().get(RedisConstant.VEHICLE_INFO_TOKEN+RedisConstant.CURRENT_MONTH_FAULT); -// Integer onlineCount = carMapper.getOnlineCarCount(); -// Integer unOnlineCount = carMapper.getUnOnlineCount(); -// VehicleAllData vehicleAllData = new VehicleAllData(); -// vehicleAllData.setMessages(messages); -// vehicleAllData.setInfo(day+":"+month+":"+onlineCount+":"+unOnlineCount); -// try { -// session.getBasicRemote().sendText(JSON.toJSONString(vehicleAllData)); -// } catch (Exception e) { -// log.info("{}:连接中断",session.getId()); -// sessions.remove(session); -// } -// } -// } -//} diff --git a/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketHandler.java b/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketHandler.java deleted file mode 100644 index 8880814..0000000 --- a/car-base-server/src/main/java/com/god/base/server/webSocket/handler/SocketHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -//package com.god.base.server.webSocket.handler; -// -//import com.alibaba.fastjson.JSON; -//import com.god.base.domain.VehicleMessage; -//import com.god.base.common.constant.RedisConstant; -//import com.god.base.server.webSocket.entity.SocketData; -//import lombok.extern.log4j.Log4j2; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.data.redis.core.RedisTemplate; -//import org.springframework.scheduling.annotation.Scheduled; -//import org.springframework.stereotype.Component; -// -//import javax.websocket.Session; -//import java.util.concurrent.CopyOnWriteArrayList; -// -///** -// * @author swh的mac -// * @Date 2023/11/20 15:51 -// */ -//@Log4j2 -//@Component -//public class SocketHandler { -// //存放每个客户端对应的MyWebSocket -// public static CopyOnWriteArrayList socketList = new CopyOnWriteArrayList<>(); -// -// @Autowired -// private RedisTemplate redisTemplate; -// -// @Scheduled(cron = "0/1 * * * * ?") -// public void sendMessageFlush(){ -// for (SocketData socketData : socketList) { -// Session session = socketData.getSession(); -// VehicleMessage msg = (VehicleMessage) redisTemplate.opsForValue().get(RedisConstant.CURRENT_INFO + ":" + socketData.getVin()); -// try { -// session.getBasicRemote().sendText(JSON.toJSONString(msg)); -// } catch (Exception e) { -// log.info("{}:连接中断",socketData.getSession().getId()); -// socketList.remove(socketData); -// } -// } -// } -//}