| @@ -164,6 +164,10 @@ video: | |||||
| tcp: | tcp: | ||||
| server: | server: | ||||
| port: 9010 | port: 9010 | ||||
| air: | |||||
| car: | |||||
| file: /root/byjc | |||||
| jasypt: | jasypt: | ||||
| @@ -151,6 +151,10 @@ video: | |||||
| tcp: | tcp: | ||||
| server: | server: | ||||
| port: 9010 | port: 9010 | ||||
| air: | |||||
| car: | |||||
| file: /root/byjc | |||||
| fm: | fm: | ||||
| exception: false | exception: false | ||||
| @@ -50,6 +50,9 @@ public class CApplication implements CommandLineRunner{ | |||||
| @Value("${tcp.server.port}") | @Value("${tcp.server.port}") | ||||
| private int tcpServerPort; | private int tcpServerPort; | ||||
| @Value("${air.car.file}") | |||||
| private String airCarFile; | |||||
| @Autowired | @Autowired | ||||
| private NioSocketServer nioSocketServer; | private NioSocketServer nioSocketServer; | ||||
| @@ -93,6 +96,11 @@ public class CApplication implements CommandLineRunner{ | |||||
| public int tcpServerPort() { | public int tcpServerPort() { | ||||
| return tcpServerPort; | return tcpServerPort; | ||||
| } | } | ||||
| @Bean | |||||
| public String airCarFile() { | |||||
| return airCarFile; | |||||
| } | |||||
| public static void main(String[] args) { | public static void main(String[] args) { | ||||
| SpringApplication.run(CApplication.class, args); | SpringApplication.run(CApplication.class, args); | ||||
| @@ -36,6 +36,7 @@ import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.iformall.annotation.AuthIgnore; | import com.iformall.annotation.AuthIgnore; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.haikang.CarNumberFactory; | |||||
| import com.iformall.haikang.HKHttpClientInstanceFactory; | import com.iformall.haikang.HKHttpClientInstanceFactory; | ||||
| import com.iformall.haikang.HKPeopleNumberFactory; | import com.iformall.haikang.HKPeopleNumberFactory; | ||||
| @@ -72,12 +73,21 @@ public class HaiKangController { | |||||
| @Autowired | @Autowired | ||||
| HKPeopleNumberFactory peopleNumberFactory; | HKPeopleNumberFactory peopleNumberFactory; | ||||
| @Autowired | |||||
| CarNumberFactory carNumberFactory; | |||||
| @AuthIgnore | @AuthIgnore | ||||
| @GetMapping("/getPeopleNumber") | @GetMapping("/getPeopleNumber") | ||||
| public ResultData getPeopleNumber() { | public ResultData getPeopleNumber() { | ||||
| return new ResultData(peopleNumberFactory.getPeopleNumber()); | return new ResultData(peopleNumberFactory.getPeopleNumber()); | ||||
| } | } | ||||
| @AuthIgnore | |||||
| @GetMapping("/getCarNumber") | |||||
| public ResultData getCarNumber() { | |||||
| return new ResultData(carNumberFactory.getCarNumber()); | |||||
| } | |||||
| @AuthIgnore | @AuthIgnore | ||||
| @GetMapping("/setPeopleNumber") | @GetMapping("/setPeopleNumber") | ||||
| public ResultData setPeopleNumber(String ip,Integer peopleNumber) { | public ResultData setPeopleNumber(String ip,Integer peopleNumber) { | ||||
| @@ -161,6 +161,10 @@ video: | |||||
| tcp: | tcp: | ||||
| server: | server: | ||||
| port: 9010 | port: 9010 | ||||
| air: | |||||
| car: | |||||
| file: /root/byjc | |||||
| jasypt: | jasypt: | ||||
| encryptor: | encryptor: | ||||
| @@ -132,6 +132,10 @@ video: | |||||
| tcp: | tcp: | ||||
| server: | server: | ||||
| port: 9010 | port: 9010 | ||||
| air: | |||||
| car: | |||||
| file: /root/byjc | |||||
| fm: | fm: | ||||
| exception: false | exception: false | ||||
| @@ -0,0 +1,41 @@ | |||||
| package com.iformall.haikang; | |||||
| import java.io.BufferedReader; | |||||
| import java.io.FileNotFoundException; | |||||
| import java.io.FileReader; | |||||
| import java.io.IOException; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Component; | |||||
| @Component | |||||
| public class CarNumberFactory { | |||||
| private final Logger log = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| private String airCarFile; | |||||
| public Integer getCarNumber() { | |||||
| int result = 0; | |||||
| try (BufferedReader br = new BufferedReader(new FileReader(airCarFile))) { | |||||
| String line; | |||||
| while ((line = br.readLine()) != null) { | |||||
| try { | |||||
| result = Integer.parseInt(line); | |||||
| break; | |||||
| }catch(Exception e) { | |||||
| log.error("getCarNumber error.",e); | |||||
| } | |||||
| } | |||||
| } catch (FileNotFoundException e) { | |||||
| log.error("getCarNumber error.",e); | |||||
| } catch (IOException e) { | |||||
| log.error("getCarNumber error.",e); | |||||
| } | |||||
| return result; | |||||
| } | |||||
| } | |||||
| @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; | |||||
| import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.iformall.haikang.CarNumberFactory; | |||||
| import com.iformall.haikang.HKPeopleNumberFactory; | import com.iformall.haikang.HKPeopleNumberFactory; | ||||
| import io.netty.channel.ChannelHandlerContext; | import io.netty.channel.ChannelHandlerContext; | ||||
| @@ -28,11 +29,13 @@ public class NioSocketHandler extends SimpleChannelInboundHandler<String>{ | |||||
| private String hexData = ""; | private String hexData = ""; | ||||
| private HKPeopleNumberFactory peopleNumberFactory; | private HKPeopleNumberFactory peopleNumberFactory; | ||||
| private CarNumberFactory carNumberFactory; | |||||
| private final ThreadPoolTaskExecutor threadPoolTaskExecutor; | private final ThreadPoolTaskExecutor threadPoolTaskExecutor; | ||||
| public NioSocketHandler(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory) { | |||||
| public NioSocketHandler(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory,CarNumberFactory carNumberFactory) { | |||||
| this.threadPoolTaskExecutor = threadPoolTaskExecutor; | this.threadPoolTaskExecutor = threadPoolTaskExecutor; | ||||
| this.peopleNumberFactory = peopleNumberFactory; | this.peopleNumberFactory = peopleNumberFactory; | ||||
| this.carNumberFactory = carNumberFactory; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -123,7 +126,7 @@ public class NioSocketHandler extends SimpleChannelInboundHandler<String>{ | |||||
| value = peopleNumberFactory.getPeopleNumber();;//查询当前排队人数 | value = peopleNumberFactory.getPeopleNumber();;//查询当前排队人数 | ||||
| break; | break; | ||||
| case 4: | case 4: | ||||
| value = 1;//查询场内出租车 | |||||
| value = carNumberFactory.getCarNumber();//查询场内出租车 | |||||
| break; | break; | ||||
| case 5: | case 5: | ||||
| value = 1;//查询在途出租车 | value = 1;//查询在途出租车 | ||||
| @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | ||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import com.iformall.haikang.CarNumberFactory; | |||||
| import com.iformall.haikang.HKPeopleNumberFactory; | import com.iformall.haikang.HKPeopleNumberFactory; | ||||
| import io.netty.channel.ChannelInitializer; | import io.netty.channel.ChannelInitializer; | ||||
| @@ -21,10 +22,12 @@ public class NioSocketInitializer extends ChannelInitializer<SocketChannel>{ | |||||
| private ThreadPoolTaskExecutor threadPoolTaskExecutor; | private ThreadPoolTaskExecutor threadPoolTaskExecutor; | ||||
| private HKPeopleNumberFactory peopleNumberFactory; | private HKPeopleNumberFactory peopleNumberFactory; | ||||
| private CarNumberFactory carNumberFactory; | |||||
| public NioSocketInitializer(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory) { | |||||
| public NioSocketInitializer(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory,CarNumberFactory carNumberFactory) { | |||||
| this.threadPoolTaskExecutor = threadPoolTaskExecutor; | this.threadPoolTaskExecutor = threadPoolTaskExecutor; | ||||
| this.peopleNumberFactory = peopleNumberFactory; | this.peopleNumberFactory = peopleNumberFactory; | ||||
| this.carNumberFactory = carNumberFactory; | |||||
| } | } | ||||
| @@ -46,7 +49,7 @@ public class NioSocketInitializer extends ChannelInitializer<SocketChannel>{ | |||||
| // 使用自定义线程池处理业务逻辑 | // 使用自定义线程池处理业务逻辑 | ||||
| log.info(">>>>peopleNumberFactory:"+peopleNumberFactory); | log.info(">>>>peopleNumberFactory:"+peopleNumberFactory); | ||||
| pipeline.addLast(new NioSocketHandler(threadPoolTaskExecutor,peopleNumberFactory)); | |||||
| pipeline.addLast(new NioSocketHandler(threadPoolTaskExecutor,peopleNumberFactory,carNumberFactory)); | |||||
| // 连接策略 | // 连接策略 | ||||
| pipeline.addLast(new IpRejectHandler()); | pipeline.addLast(new IpRejectHandler()); | ||||
| } | } | ||||
| @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | ||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import com.iformall.haikang.CarNumberFactory; | |||||
| import com.iformall.haikang.HKPeopleNumberFactory; | import com.iformall.haikang.HKPeopleNumberFactory; | ||||
| import io.netty.bootstrap.ServerBootstrap; | import io.netty.bootstrap.ServerBootstrap; | ||||
| @@ -23,6 +24,8 @@ public class NioSocketServer { | |||||
| private ThreadPoolTaskExecutor threadPoolTaskExecutor; | private ThreadPoolTaskExecutor threadPoolTaskExecutor; | ||||
| @Autowired | @Autowired | ||||
| private HKPeopleNumberFactory peopleNumberFactory; | private HKPeopleNumberFactory peopleNumberFactory; | ||||
| @Autowired | |||||
| private CarNumberFactory carNumberFactory; | |||||
| private EventLoopGroup bossGroup; | private EventLoopGroup bossGroup; | ||||
| private EventLoopGroup workerGroup; | private EventLoopGroup workerGroup; | ||||
| @@ -36,7 +39,7 @@ public class NioSocketServer { | |||||
| ServerBootstrap b = new ServerBootstrap(); | ServerBootstrap b = new ServerBootstrap(); | ||||
| b.group(bossGroup, workerGroup) | b.group(bossGroup, workerGroup) | ||||
| .channel(NioServerSocketChannel.class) | .channel(NioServerSocketChannel.class) | ||||
| .childHandler(new NioSocketInitializer(threadPoolTaskExecutor,peopleNumberFactory)) | |||||
| .childHandler(new NioSocketInitializer(threadPoolTaskExecutor,peopleNumberFactory,carNumberFactory)) | |||||
| .option(ChannelOption.SO_BACKLOG, 128) | .option(ChannelOption.SO_BACKLOG, 128) | ||||
| .childOption(ChannelOption.SO_KEEPALIVE, true); | .childOption(ChannelOption.SO_KEEPALIVE, true); | ||||