puzhibing
2023-07-26 709a4a10be56952ead6340e4822fce41a66e47cd
zuul/src/main/java/com/sinata/zuul/util/echo/NettyServerController.java
@@ -57,7 +57,7 @@
    * @param msg
    * @author TaoNingBo
    */
   public void JudgeOperation(ChannelHandlerContext ctx, Object msg) {
   public synchronized void JudgeOperation(ChannelHandlerContext ctx, Object msg) {
        try {
           // ByteBuf转String
           ByteBuf byteBuf = (ByteBuf) msg;
@@ -112,12 +112,12 @@
                        if(b){
                           NettyChannelMap.remove_(data_);
                        }
//                        new Timer().schedule(new TimerTask() {
//                                    @Override
//                                    public void run() {
//                                        NettyChannelMap.remove_(data_);
//                                    }
//                                }, 5000);
                        new Timer().schedule(new TimerTask() {
                                    @Override
                                    public void run() {
                                        NettyChannelMap.remove_(data_);
                                    }
                                }, 5000);
                            }
                            NettyChannelMap.update_(token.substring(token.length() - 16), ctx);
                            NettyChannelMap.update("USER" + userId1, ctx);
@@ -131,21 +131,21 @@
                    }else{
                        //确保账号在单个设备上登录
                  if(StringUtil.isNotEmpty(token)){//APP端登录的操作
//                            String token_ = redisUtil.getValue("DRIVER_" + userId1);//缓存中拿最新数据
//                            if(StringUtil.isNotEmpty(token_) && !token.equals(token_)){//不在同一设备上登录,向当前设备发送数据
//                                ChannelHandlerContext data_ = NettyChannelMap.getData_(token_.substring(token_.length() - 16));
//                                if(null != data_){
//                           JSONObject msg_ = new JSONObject();
//                           msg_.put("code", 200);
//                           msg_.put("msg", "SUCCESS");
//                           msg_.put("method", "OFFLINE");
//                           msg_.put("data", new Object());
//                           boolean b = this.sendMsgToClient(data_, msg_.toJSONString());//给当前通道发送消息
//                           if(b){
//                              NettyChannelMap.remove_(data_);
//                           }
//                        }
//                            }
                            String token_ = redisUtil.getValue("DRIVER_" + userId1);//缓存中拿最新数据
                            if(StringUtil.isNotEmpty(token_) && !token.equals(token_)){//不在同一设备上登录,向当前设备发送数据
                                ChannelHandlerContext data_ = NettyChannelMap.getData_(token_.substring(token_.length() - 16));
                                if(null != data_){
                           JSONObject msg_ = new JSONObject();
                           msg_.put("code", 200);
                           msg_.put("msg", "SUCCESS");
                           msg_.put("method", "OFFLINE");
                           msg_.put("data", new Object());
                           boolean b = this.sendMsgToClient(data_, msg_.toJSONString());//给当前通道发送消息
                           if(b){
                              NettyChannelMap.remove_(data_);
                           }
                        }
                            }
                            NettyChannelMap.update("DRIVER" + userId1, ctx);
                            NettyChannelMap.update_(token.substring(token.length() - 16), ctx);
                     redisUtil.setStrValue("DRIVER_" + userId1, token);