#
zy
2025-08-03 d3417407db947cf6f10c163d75325fd7df408eab
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -34,6 +34,7 @@
    private Socket socket;
    private boolean stopThread = false;
    private HashMap<Integer, String> resultKeyMap = new HashMap<Integer, String>();
    private long lastConnectTime = System.currentTimeMillis();
    public NyShuttleThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
        this.deviceConfig = deviceConfig;
@@ -129,6 +130,7 @@
    }
    private void listenSocketMessage() {
        StringBuffer sb = new StringBuffer();
        try {
            if (this.socket == null) {
                return;
@@ -146,13 +148,14 @@
            // 获取输入流
            BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            // 读取服务器的响应
            StringBuffer sb = new StringBuffer();
            char[] chars = new char[2048];//缓冲区
            while (true) {
                reader.read(chars);
                String trim = new String(chars);
                sb.append(trim);
                if (trim.lastIndexOf("\r\n") != -1) {
                int lastIndexOf = trim.lastIndexOf("\r\n");
                if (lastIndexOf != -1) {
                    trim = trim.substring(0, lastIndexOf);
                    sb.append(trim);
                    break;
                }
            }
@@ -275,6 +278,10 @@
                return true;
            }
            if(System.currentTimeMillis() - lastConnectTime < 1000 * 10) {
                return false;
            }
            if(this.deviceConfig.getFake()) {
                return fakeConnect();
            }else {
@@ -284,6 +291,7 @@
                    deviceSocket.setSoTimeout(10000);
                    deviceSocket.setKeepAlive(true);
                    this.socket = deviceSocket;
                    this.lastConnectTime = System.currentTimeMillis();
                    log.info(MessageFormat.format("【{0}】四向穿梭车Socket链接成功 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
                }
            }