From 97f4845952c1e42804ecca481d0cf109c6369c1f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 07 四月 2023 17:39:48 +0800
Subject: [PATCH] 修改配置和长连接bug

---
 zuul/src/main/java/com/sinata/zuul/util/applets/NettyWebSocketController.java |   21 ++++++++-------------
 1 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/zuul/src/main/java/com/sinata/zuul/util/applets/NettyWebSocketController.java b/zuul/src/main/java/com/sinata/zuul/util/applets/NettyWebSocketController.java
index ee1364a..b7867cd 100644
--- a/zuul/src/main/java/com/sinata/zuul/util/applets/NettyWebSocketController.java
+++ b/zuul/src/main/java/com/sinata/zuul/util/applets/NettyWebSocketController.java
@@ -83,35 +83,30 @@
                 if (StringUtil.isNotEmpty(userId1)) {
                     //确保账号在单个设备上登录
                     if (StringUtil.isNotEmpty(token)) {
-                        NettyChannelMap.update_(token.substring(0, 23), ctx);//存储单点登录的通道
                         String token_ = redisUtil.getValue("USER_Applets_" + userId1);//获取缓存中最新的数据
                         if (StringUtil.isNotEmpty(token_) && !token.equals(token_)) {//不在同一设备上登录,向其他设备发送数据
+                            ChannelHandlerContext data_ = NettyChannelMap.getData_(token_.substring(0, 23));
                             JSONObject msg_ = new JSONObject();
                             msg_.put("code", 200);
                             msg_.put("msg", "SUCCESS");
                             msg_.put("method", "OFFLINE");
                             msg_.put("data", new Object());
-                            this.sendMsgToClient(ctx, msg_.toJSONString());
-                            TimerTask timerTask = new TimerTask() {
+                            this.sendMsgToClient(data_, msg_.toJSONString());
+                            new Timer().schedule(new TimerTask() {
                                 @Override
                                 public void run() {
-                                    NettyChannelMap.remove_(ctx);
+                                    NettyChannelMap.remove_(data_);
                                 }
-                            };
-                            Timer timer = new Timer();
-                            timer.schedule(timerTask, 3000);
-                            timer.cancel();
+                            }, 5000);
                         }
-                        if (StringUtil.isEmpty(token_)) {//确保登录的时候存储token失败的情况
-                            redisUtil.setStrValue("USER_Applets_" + userId1, token);
-                        }
+                        NettyChannelMap.update_(token.substring(0, 23), ctx);//存储单点登录的通道
+                        NettyChannelMap.update("Applets" + userId1, ctx);
+                        redisUtil.setStrValue("USER_Applets_" + userId1, token);
                     }
 
                     //存储业务使用的通道
                     if (null != ctx && ctx.channel().isActive()) {
                         NettyChannelMap.update("Applets" + userId1, ctx);
-//                    String s = NettyMsg.setMsg(Method.ok, new HashMap<String, Object>());
-//                    ctx.writeAndFlush(Unpooled.copiedBuffer((s).getBytes()));
                     }
                 }
 

--
Gitblit v1.7.1