vince
2024-01-27 facc0ea3fa37091a98aa1e0a0d1081fd32fba28e
src/main/java/com/fzzy/protocol/youxian0/client/ClientEngine.java
@@ -30,7 +30,7 @@
    private String host;
    private int port;
    public Channel defaultChannel;
    public static Channel defaultChannel;
    public ClientEngine(String host, int port) {
@@ -46,6 +46,7 @@
    @Override
    public void run() {
        try {
            startClient();
        } catch (Exception e) {
            e.printStackTrace();
@@ -53,6 +54,10 @@
    }
    public void startClient() throws Exception {
        if(defaultChannel != null){
            log.info("-----IP={},连接存在,直接使用",host);
            return;
        }
        EventLoopGroup group = new OioEventLoopGroup();
        Bootstrap b = new Bootstrap();
        //默认长连接
@@ -82,9 +87,9 @@
            @Override
            public void operationComplete(ChannelFuture arg0) throws Exception {
                if (channelFuture.isSuccess()) {
                    log.info("-----IP={},连接成功");
                    log.info("-----IP={},连接成功",host);
                } else {
                    log.info("-----IP={},连接失败,自动关闭线程");
                    log.info("-----IP={},连接失败,自动关闭线程",host);
                    channelFuture.cause().printStackTrace();
                    group.shutdownGracefully(); // 关闭线程组
                }
@@ -98,6 +103,7 @@
            return InvokeResult.SOCKET_NOT_CREATE;
        }
        if (!defaultChannel.isActive()) {
            defaultChannel = null;
            return InvokeResult.CHANNEL_CLOSED;
        }
@@ -107,11 +113,11 @@
    }
    public Channel getChannel() {
    public static Channel getChannel() {
        return defaultChannel;
    }
    public static void add2ChannelMap(String key, Channel channel) {
    public  void add2ChannelMap(String key, Channel channel) {
        clientChannelMap.put(key, channel);
    }
@@ -128,6 +134,7 @@
            return channel;
        } else {
            channel.close();
            defaultChannel = null;
        }
        return null;
    }
@@ -137,6 +144,7 @@
            return InvokeResult.SOCKET_NOT_CREATE;
        }
        if (!channel.isActive()) {
            defaultChannel = null;
            return InvokeResult.CHANNEL_CLOSED;
        }
        channel.writeAndFlush(Unpooled.copiedBuffer(BytesUtil.hexStrToBytes(hex))).sync();