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