@@ -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); | ||||