Browse Source

删除设备连接冗余代码

zhifei 1 year ago
parent
commit
00985edcc5

+ 33 - 0
warewms-admin/src/main/resources/application-dev.yml

@@ -199,3 +199,36 @@ xss:
   excludes: /system/notice
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
+
+# plc连接配置
+plc:
+  plcList[0]:
+    ip: 172.20.52.21
+    enable: false
+    name: ChengZhongPlc
+    ePlcType: S1200
+    heartbeat:
+  plcList[1]:
+    ip: 172.20.27.2
+    enable: false
+    name: DaoJiaoJiPlc
+    ePlcType: S200_SMART
+    heartbeat:
+  plcList[2]:
+    ip: 172.20.52.22
+    enable: false
+    name: XiMianPlc
+    ePlcType: S1200
+    heartbeat: BD200.0.0
+  plcList[3]:
+    ip: 172.20.52.24
+    enable: false
+    name: ZhaZhiPlc
+    ePlcType: S1500
+    heartbeat: BD300.0.0
+  plcList[4]:
+    ip: 172.20.54.121
+    enable: false
+    name: DaSanPanPlc
+    ePlcType: S1500
+    heartbeat: BD200.0.0

+ 32 - 1
warewms-admin/src/main/resources/application-prod.yml

@@ -200,4 +200,35 @@ xss:
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
 
-
+# plc连接配置
+plc:
+  plcList[0]:
+    ip: 172.20.52.21
+    enable: true
+    name: ChengZhongPlc
+    ePlcType: S1200
+    heartbeat:
+  plcList[1]:
+    ip: 172.20.27.2
+    enable: true
+    name: DaoJiaoJiPlc
+    ePlcType: S200_SMART
+    heartbeat:
+  plcList[2]:
+    ip: 172.20.52.22
+    enable: true
+    name: XiMianPlc
+    ePlcType: S1200
+    heartbeat: BD200.0.0
+  plcList[3]:
+    ip: 172.20.52.24
+    enable: true
+    name: ZhaZhiPlc
+    ePlcType: S1500
+    heartbeat: BD300.0.0
+  plcList[4]:
+    ip: 172.20.54.121
+    enable: true
+    name: DaSanPanPlc
+    ePlcType: S1500
+    heartbeat: BD200.0.0

+ 0 - 70
warewms-system/src/main/java/com/warewms/hailiang/common/ChannelMap.java

@@ -1,70 +0,0 @@
-package com.warewms.hailiang.common;
-
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelId;
-import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
-import org.springframework.util.CollectionUtils;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 功能描述: 管理通道Map类
- *
- * @Author keLe
- * @Date 2022/8/26
- */
-public class ChannelMap {
-
-    /**
-     * 管理一个全局map,保存连接进服务端的通道数量
-     */
-    private static final ConcurrentHashMap<ChannelId, Channel> CHANNEL_MAP = new ConcurrentHashMap<>(128);
-
-    public static ConcurrentHashMap<ChannelId, Channel> getChannelMap() {
-        return CHANNEL_MAP;
-    }
-
-    /**
-     *  获取指定name的channel
-     */
-    public static Channel getChannelByName(ChannelId channelId){
-        if(CollectionUtils.isEmpty(CHANNEL_MAP)){
-            return null;
-        }
-        return CHANNEL_MAP.get(channelId);
-    }
-
-    /**
-     *  将通道中的消息推送到每一个客户端
-     */
-    public static boolean pushNewsToAllClient(String obj){
-        if(CollectionUtils.isEmpty(CHANNEL_MAP)){
-            return false;
-        }
-        for(ChannelId channelId: CHANNEL_MAP.keySet()) {
-            Channel channel = CHANNEL_MAP.get(channelId);
-            channel.writeAndFlush(new TextWebSocketFrame(obj));
-        }
-        return true;
-    }
-
-    /**
-     *  将channel和对应的name添加到ConcurrentHashMap
-     */
-    public static void addChannel(ChannelId channelId,Channel channel){
-        CHANNEL_MAP.put(channelId,channel);
-    }
-
-    /**
-     *  移除掉name对应的channel
-     */
-    public static boolean removeChannelByName(ChannelId channelId){
-        if(CHANNEL_MAP.containsKey(channelId)){
-            CHANNEL_MAP.remove(channelId);
-            return true;
-        }
-        return false;
-    }
-
-}

+ 0 - 75
warewms-system/src/main/java/com/warewms/hailiang/common/DtuManage.java

@@ -1,75 +0,0 @@
-package com.warewms.hailiang.common;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFutureListener;
-import io.netty.channel.ChannelId;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.Arrays;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 功能描述: 定时发送Dtu报文
- *
- * @Author keLe
- * @Date 2022/8/29
- */
-@Slf4j
-@Component
-public class DtuManage {
-
-
-    public void sendMsg(){
-        ConcurrentHashMap<ChannelId, Channel> channelMap = ChannelMap.getChannelMap();
-        if(CollectionUtils.isEmpty(channelMap)){
-            return;
-        }
-        ConcurrentHashMap.KeySetView<ChannelId, Channel> channelIds = channelMap.keySet();
-        byte[] msgBytes = {0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x25, (byte) 0xCA};
-        for(ChannelId channelId : channelIds){
-            Channel channel = ChannelMap.getChannelByName(channelId);
-            // 判断是否活跃
-            if(channel==null || !channel.isActive()){
-                ChannelMap.getChannelMap().remove(channelId);
-                log.info("客户端:{},连接已经中断",channelId);
-                return ;
-            }
-            // 指令发送
-            ByteBuf buffer = Unpooled.buffer();
-            log.info("开始发送报文:{}",Arrays.toString(msgBytes));
-            buffer.writeBytes(msgBytes);
-            channel.writeAndFlush(buffer).addListener((ChannelFutureListener) future -> {
-                if (future.isSuccess()) {
-                    log.info("客户端:{},回写成功:{}",channelId,Arrays.toString(msgBytes));
-                } else {
-                    log.info("客户端:{},回写失败:{}",channelId,Arrays.toString(msgBytes));
-                }
-            });
-        }
-    }
-
-    /**
-     * 功能描述: 定时删除不活跃的连接
-     * @Author keLe
-     * @Date 2022/8/26
-     * @return void
-     */
-    public void deleteInactiveConnections(){
-        ConcurrentHashMap<ChannelId, Channel> channelMap = ChannelMap.getChannelMap();
-        if(!CollectionUtils.isEmpty(channelMap)){
-            for (Map.Entry<ChannelId, Channel> next : channelMap.entrySet()) {
-                ChannelId channelId = next.getKey();
-                Channel channel = next.getValue();
-                if (!channel.isActive()) {
-                    channelMap.remove(channelId);
-                    log.info("客户端:{},连接已经中断",channelId);
-                }
-            }
-        }
-    }
-}

+ 0 - 51
warewms-system/src/main/java/com/warewms/hailiang/common/MyDecoder.java

@@ -1,51 +0,0 @@
-package com.warewms.hailiang.common;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.handler.codec.ByteToMessageDecoder;
-
-import java.util.List;
-
-/**
- * 功能描述: 自定义接收消息格式
- */
-public class MyDecoder extends ByteToMessageDecoder {
-    @Override
-    protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf in, List<Object> out) throws Exception {
-        byte[] data = new byte[in.readableBytes()];
-        in.readBytes(data);
-        String msg = bytesToHexString(data);
-        out.add(msg);
-    }
-
-    public String bytesToHexString(byte[] bArray) {
-        StringBuffer sb = new StringBuffer(bArray.length);
-        String sTemp;
-        for (int i = 0; i < bArray.length; i++) {
-            sTemp = Integer.toHexString(0xFF & bArray[i]);
-            if (sTemp.length() < 2) {
-                sb.append(0);
-            }
-            sb.append(sTemp.toUpperCase());
-        }
-        return sb.toString();
-    }
-
-    public static String toHexString1(byte[] b) {
-        StringBuffer buffer = new StringBuffer();
-        for (int i = 0; i < b.length; ++i) {
-            buffer.append(toHexString1(b[i]));
-        }
-        return buffer.toString();
-    }
-
-    public static String toHexString1(byte b) {
-        String s = Integer.toHexString(b & 0xFF);
-        if (s.length() == 1) {
-            return "0" + s;
-        } else {
-            return s;
-        }
-    }
-
-}

+ 0 - 90
warewms-system/src/main/java/com/warewms/hailiang/common/MyEncoder.java

@@ -1,90 +0,0 @@
-package com.warewms.hailiang.common;
-
-import cn.hutool.core.util.ByteUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import io.netty.buffer.ByteBuf;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.handler.codec.MessageToByteEncoder;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Scanner;
-import java.util.Stack;
-
-/**
- * 功能描述: 自定义发送消息格式
- *
- */
-public class MyEncoder extends MessageToByteEncoder<String> {
-
-    @Override
-    protected void encode(ChannelHandlerContext channelHandlerContext, String s, ByteBuf byteBuf) throws Exception {
-        //将16进制字符串转为数组
-        byteBuf.writeBytes(hexString2Bytes(s));
-    }
-
-    /**
-     * 功能描述: 16进制字符串转字节数组
-     * @param src 16进制字符串
-     * @return byte[]
-     */
-    public static byte[] hexString2Bytes(String src) {
-        int l = src.length() / 2;
-        byte[] ret = new byte[l];
-        for (int i = 0; i < l; i++) {
-            ret[i] = (byte) Integer.valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
-        }
-        return ret;
-    }
-
-    /**
-     * 字符串转16进制字符串
-     * @param str
-     * @return
-     */
-    public static String StringTohexString(String str){
-        StringBuffer sb = new StringBuffer();
-        //将字符串转换为字符数组
-        char ch[] = str.toCharArray();
-        for(int i = 0; i < ch.    length; i++) {
-            String hexString = Integer.toHexString(ch[i]);
-            sb.append(hexString);
-        }
-        return sb.toString();
-    }
-    public static void main(String[] args) throws UnsupportedEncodingException {
-//        String str = "23";
-//        StringBuffer sb = new StringBuffer();
-//        //将字符串转换为字符数组
-//        char ch[] = str.toCharArray();
-//        for(int i = 0; i < ch.    length; i++) {
-//            String hexString = Integer.toHexString(ch[i]);
-//            sb.append(hexString);
-//        }
-//        String result = sb.toString();
-
-//        System.out.println(result);
-//        byte[] bytes = new byte[37];
-//        bytes[0] = 00;
-//        String s ="E800230100063132333332310200173131313131313131313131313131313131313131313131";
-
-//        String s ="E8 00 23 01 00 06 31 32 33 33 32 31 02 00 17 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31";
-//        String[] s2 = s.split(" ");
-//        int i  =Integer.parseInt(s2[0],16) ^ Integer.parseInt(s2[1],16) ;
-//        for (int i1 = 1; i1 < s2.length-1; i1++) {
-//            i = i ^ Integer.parseInt(s2[i1+1],16);
-//        }
-//        System.out.println(Integer.toHexString(i));
-
-//        System.out.println(Integer.parseInt("23",16));
-//        System.out.println(Arrays.toString(hexString2Bytes("8000")));
-
-//        System.out.println(Integer.parseInt("E8",16));
-//        for (int i = 1; i < bytes.length -1; i++) {
-//            y = y ^ bytes[i + 1];
-//            System.out.println(y);
-//        }
-//        System.out.println(Integer.toHexString(y));
-    }
-
-}

+ 0 - 55
warewms-system/src/main/java/com/warewms/hailiang/common/NettyServer.java

@@ -1,55 +0,0 @@
-package com.warewms.hailiang.common;
-
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelOption;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.net.InetSocketAddress;
-
-/**
- * 功能描述: netty服务启动类
- *
- */
-@Slf4j
-@Component
-public class NettyServer {
-    public void start(InetSocketAddress address) {
-        //配置服务端的NIO线程组
-        EventLoopGroup bossGroup = new NioEventLoopGroup();
-        EventLoopGroup workerGroup = new NioEventLoopGroup();
-        try {
-            // 绑定线程池,编码解码
-            //服务端接受连接的队列长度,如果队列已满,客户端连接将被拒绝
-            ServerBootstrap bootstrap = new ServerBootstrap()
-                    .group(bossGroup, workerGroup)
-                    // 指定Channel
-                    .channel(NioServerSocketChannel.class)
-                    //使用指定的端口设置套接字地址
-                    .localAddress(address)
-                    //使用自定义处理类
-                    .childHandler(new NettyServerChannelInitializer())
-                    //服务端可连接队列数,对应TCP/IP协议listen函数中backlog参数
-                    .option(ChannelOption.SO_BACKLOG, 128)
-                    //保持长连接,2小时无数据激活心跳机制
-                    .childOption(ChannelOption.SO_KEEPALIVE, true)
-                    //将小的数据包包装成更大的帧进行传送,提高网络的负载
-                    .childOption(ChannelOption.TCP_NODELAY, true);
-            // 绑定端口,开始接收进来的连接
-            ChannelFuture future = bootstrap.bind(address).sync();
-            if (future.isSuccess()) {
-                log.info("netty服务器开始监听端口:{}",address.getPort());
-            }
-            //关闭channel和块,直到它被关闭
-            future.channel().closeFuture().sync();
-        } catch (Exception e) {
-            e.printStackTrace();
-            bossGroup.shutdownGracefully();
-            workerGroup.shutdownGracefully();
-        }
-    }
-}

+ 0 - 28
warewms-system/src/main/java/com/warewms/hailiang/common/NettyServerChannelInitializer.java

@@ -1,28 +0,0 @@
-package com.warewms.hailiang.common;
-
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelPipeline;
-import io.netty.channel.socket.SocketChannel;
-
-/**
- * 功能描述: 服务端初始化,客户端与服务器端连接一旦创建,这个类中方法就会被回调,设置出站编码器和入站解码器
- *
- * @Author keLe
- * @Date 2022/8/26
- */
-public class NettyServerChannelInitializer extends ChannelInitializer<SocketChannel> {
-    @Override
-    protected void initChannel(SocketChannel socketChannel) throws Exception {
-        ChannelPipeline pipeline = socketChannel.pipeline();
-        //接收消息格式,使用自定义解析数据格式
-        pipeline.addLast("decoder",new MyDecoder());
-        //发送消息格式,使用自定义解析数据格式
-        pipeline.addLast("encoder",new MyEncoder());
-
-        //针对客户端,如果在1分钟时没有想服务端发送写心跳(ALL),则主动断开
-        //如果是读空闲或者写空闲,不处理,这里根据自己业务考虑使用
-        //pipeline.addLast(new IdleStateHandler(600,0,0, TimeUnit.SECONDS));
-        //自定义的空闲检测
-        pipeline.addLast(new NettyServerHandler());
-    }
-}

+ 0 - 152
warewms-system/src/main/java/com/warewms/hailiang/common/NettyServerHandler.java

@@ -1,152 +0,0 @@
-package com.warewms.hailiang.common;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelId;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.handler.timeout.IdleState;
-import io.netty.handler.timeout.IdleStateEvent;
-import lombok.extern.slf4j.Slf4j;
-
-import java.net.InetSocketAddress;
-
-/**
- * 功能描述: netty服务端处理类
- *
- */
-@Slf4j
-public class NettyServerHandler extends ChannelInboundHandlerAdapter {
-
-    /**
-     * 功能描述: 有客户端连接服务器会触发此函数
-     *
-     * @param ctx 通道
-     * @return void
-     */
-    @Override
-    public void channelActive(ChannelHandlerContext ctx) {
-        InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
-        String clientIp = insocket.getAddress().getHostAddress();
-        int clientPort = insocket.getPort();
-        //获取连接通道唯一标识
-        ChannelId channelId = ctx.channel().id();
-        //如果map中不包含此连接,就保存连接
-        if (ChannelMap.getChannelMap().containsKey(channelId)) {
-            log.info("客户端:{},是连接状态,连接通道数量:{} ", channelId, ChannelMap.getChannelMap().size());
-        } else {
-            //保存连接
-            ChannelMap.addChannel(channelId, ctx.channel());
-            log.info("客户端:{},连接netty服务器[IP:{}-->PORT:{}]", channelId, clientIp, clientPort);
-            log.info("连接通道数量: {}", ChannelMap.getChannelMap().size());
-        }
-    }
-
-    /**
-     * 功能描述: 有客户端终止连接服务器会触发此函数
-     *
-     * @param ctx 通道处理程序上下文
-     * @return void
-     */
-    @Override
-    public void channelInactive(ChannelHandlerContext ctx) {
-        InetSocketAddress inSocket = (InetSocketAddress) ctx.channel().remoteAddress();
-        String clientIp = inSocket.getAddress().getHostAddress();
-        ChannelId channelId = ctx.channel().id();
-        //包含此客户端才去删除
-        if (ChannelMap.getChannelMap().containsKey(channelId)) {
-            //删除连接
-            ChannelMap.getChannelMap().remove(channelId);
-            log.info("客户端:{},连接netty服务器[IP:{}-->PORT:{}]", channelId, clientIp, inSocket.getPort());
-            log.info("连接通道数量: " + ChannelMap.getChannelMap().size());
-        }
-    }
-
-    /**
-     * 功能描述: 有客户端发消息会触发此函数
-     *
-     * @param ctx 通道处理程序上下文
-     * @param msg 客户端发送的消息
-     * @return void
-     */
-    @Override
-    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
-        log.info("加载客户端报文,客户端id:{},客户端消息:{}", ctx.channel().id(), msg);
-        String data = String.valueOf(msg);
-        Integer water = Integer.parseInt(data.substring(6, 10), 16);
-        log.info("当前水位:{}cm", water);
-        //响应客户端
-        this.channelWrite(ctx.channel().id(), msg);
-    }
-
-    @Override
-    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
-        String bytes = "01 03 00 02 00 01 25 CA";
-        ctx.writeAndFlush(bytes);
-    }
-
-    /**
-     * 功能描述: 服务端给客户端发送消息
-     *
-     * @param channelId 连接通道唯一id
-     * @param msg       需要发送的消息内容
-     * @return void
-     */
-    public void channelWrite(ChannelId channelId, Object msg) throws Exception {
-        Channel channel = ChannelMap.getChannelMap().get(channelId);
-        if (channel == null) {
-            log.info("通道:{},不存在", channelId);
-            return;
-        }
-        if (msg == null || msg == "") {
-            log.info("服务端响应空的消息");
-            return;
-        }
-        //将客户端的信息直接返回写入ctx
-        channel.write(msg);
-        //刷新缓存区
-        channel.flush();
-    }
-
-    @Override
-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
-        String socketString = ctx.channel().remoteAddress().toString();
-        if (evt instanceof IdleStateEvent) {
-            IdleStateEvent event = (IdleStateEvent) evt;
-            if (event.state() == IdleState.READER_IDLE) {
-                log.info("Client:{},READER_IDLE 读超时", socketString);
-                ctx.disconnect();
-                Channel channel = ctx.channel();
-                ChannelId id = channel.id();
-                ChannelMap.removeChannelByName(id);
-            } else if (event.state() == IdleState.WRITER_IDLE) {
-                log.info("Client:{}, WRITER_IDLE 写超时", socketString);
-                ctx.disconnect();
-                Channel channel = ctx.channel();
-                ChannelId id = channel.id();
-                ChannelMap.removeChannelByName(id);
-            } else if (event.state() == IdleState.ALL_IDLE) {
-                log.info("Client:{},ALL_IDLE 总超时", socketString);
-                ctx.disconnect();
-                Channel channel = ctx.channel();
-                ChannelId id = channel.id();
-                ChannelMap.removeChannelByName(id);
-            }
-        }
-    }
-
-    /**
-     * 功能描述: 发生异常会触发此函数
-     *
-     * @param ctx   通道处理程序上下文
-     * @param cause 异常
-     * @return void
-     * @Author keLe
-     * @Date 2022/8/26
-     */
-    @Override
-    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
-        ctx.close();
-        log.info("{}:发生了错误,此连接被关闭。此时连通数量:{}", ctx.channel().id(), ChannelMap.getChannelMap().size());
-    }
-
-}

+ 0 - 63
warewms-system/src/main/java/com/warewms/hailiang/config/LaunchRunner.java

@@ -1,63 +0,0 @@
-/*
-package com.warewms.hailiang.config;
-
-
-import cn.hutool.cron.CronUtil;
-import com.warewms.hailiang.common.NettyServer;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.net.InetSocketAddress;
-
-*/
-/**
- * 功能描述: 任务队列
- * @Author keLe
- * @Date 2022/7/20
- *//*
-
-@Component
-@Order(2)
-@Slf4j
-public class LaunchRunner implements CommandLineRunner {
-
-    @Resource
-    private NettyServer nettyServer;
-
-    @Resource
-    private SocketProperties socketProperties;
-
-
-    @Override
-    public void run(String... args) throws Exception {
-        TaskRunner();
-        InetSocketAddress address = new InetSocketAddress(socketProperties.getHost(),socketProperties.getPort());
-        log.info("netty服务器启动地址:"+socketProperties.getHost());
-        nettyServer.start(address);
-    }
-    */
-/**
-     * 执行正在运行的任务
-     *//*
-
-    private  void TaskRunner() {
-        */
-/**
-         * 任务队列启动
-         *//*
-
-        CronUtil.setMatchSecond(true);
-        CronUtil.start();
-        log.info("\n-----------------------任务服务启动------------------------\n\t" +
-                        "当前正在启动的{}个任务"+
-                        "\n-----------------------------------------------------------\n\t"
-                , CronUtil.getScheduler().size()
-
-        );
-
-    }
-}
-*/

+ 0 - 29
warewms-system/src/main/java/com/warewms/hailiang/config/SocketProperties.java

@@ -1,29 +0,0 @@
-package com.warewms.hailiang.config;
-
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
-
-/**
- * 功能描述: 配置类
- *
- * @Author keLe
- * @Date 2022/8/26
- */
-@Setter
-@Getter
-@ToString
-@Component
-@Configuration
-@PropertySource("classpath:application.yml")
-@ConfigurationProperties(prefix = "socket")
-public class SocketProperties {
-    private Integer port;
-    private String host;
-
-}

+ 7 - 1
warewms-system/src/main/java/com/warewms/hailiang/connect/TCPConnectBase.java

@@ -1,4 +1,6 @@
-package com.warewms.hailiang.connect;
+package com.warewms.hailiang.connect.base;
+
+import io.netty.channel.ChannelPipeline;
 
 import java.io.IOException;
 
@@ -21,4 +23,8 @@ public interface TCPConnectBase {
     void close();
 
     String getDeviceName();
+
+    ChannelPipeline getChannel();
+
+    void processMessages(String message);
 }