| | |
| | | responseBean.setType(requestBean.getType()); |
| | | responseBean.setStatus(1); |
| | | |
| | | // String bearerToken = requestBean.getData().toString(); |
| | | // String rsaToken = bearerToken.replace(AppContants.TOKEN_START_WITH, ""); |
| | | // RSA rsa = new RSA(securityProperties.getPrivateKey(), null); |
| | | // String[] tokens = StrUtil.split(rsa.decryptStr(rsaToken, KeyType.PrivateKey), "_"); |
| | | // |
| | | // Long memberId = Long.parseLong(tokens[0]); |
| | | |
| | | String token = requestBean.getData().toString(); |
| | | String redisKey = AppContants.APP_LOGIN_PREFIX + token; |
| | | String loginStr = redisUtils.getString(redisKey); |
| | |
| | | |
| | | public void sendMsg(RequestBean requestBean) { |
| | | String chatStr = requestBean.getData().toString(); |
| | | log.info("接收到的消息:{}", chatStr); |
| | | ChatRequest chat = JSONObject.parseObject(chatStr, ChatRequest.class); |
| | | |
| | | Channel channel = ChannelManager.findWebSocketChannel(requestBean.getChannelId()); |
| | | channel.writeAndFlush(NettyTools.webSocketJson(ResponseBean.ok(chat))); |
| | | // 判断是否在线 |
| | | Channel targetChannel = ChannelManager.findWsChannel(Long.parseLong(chat.getTo())); |
| | | if (targetChannel != null) { |
| | | targetChannel.writeAndFlush(NettyTools.webSocketBytes(JSONObject.toJSONString(ResponseBean.ok(chat)))); |
| | | ResponseBean res = ResponseBean.ok(chat); |
| | | chat.setTimestamp(System.currentTimeMillis()); |
| | | res.setType(2); |
| | | channel.writeAndFlush(NettyTools.webSocketJson(res)); |
| | | |
| | | chatProducer.sendMsgHistory(chat); |
| | | // 判断是否在线 |
| | | Channel targetChannel = ChannelManager.findWsChannel(chat.getTargetId()); |
| | | if (targetChannel != null) { |
| | | chat.setIsSelf(2); |
| | | ResponseBean toRes = ResponseBean.ok(chat); |
| | | toRes.setType(2); |
| | | targetChannel.writeAndFlush(NettyTools.webSocketJson(toRes)); |
| | | } else { |
| | | // 在redis中保存用户未在线时,给该用户发送的消息条数 |
| | | String key = AppContants.MSG_NOTICE + chat.getTo(); |
| | | String value = redisUtils.getString(key); |
| | | if (StrUtil.isEmpty(value)) { |
| | | redisUtils.set(key , 1); |
| | | } else { |
| | | redisUtils.set(key, Integer.parseInt(value) + 1); |
| | | } |
| | | // String key = AppContants.MSG_NOTICE + chat.getTargetId(); |
| | | // String value = redisUtils.getString(key); |
| | | // if (StrUtil.isEmpty(value)) { |
| | | // redisUtils.set(key , 1); |
| | | // } else { |
| | | // redisUtils.set(key, Integer.parseInt(value) + 1); |
| | | // } |
| | | } |
| | | chatProducer.sendMsgHistory(chat); |
| | | } |
| | | } |