| | |
| | | |
| | | 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))); |
| | | ResponseBean res = ResponseBean.ok(chat); |
| | | chat.setTimestamp(System.currentTimeMillis()); |
| | | res.setType(2); |
| | | channel.writeAndFlush(NettyTools.webSocketJson(res)); |
| | | |
| | | // 判断是否在线 |
| | | Channel targetChannel = ChannelManager.findWsChannel(Long.parseLong(chat.getTo())); |
| | | Channel targetChannel = ChannelManager.findWsChannel(chat.getTargetId()); |
| | | if (targetChannel != null) { |
| | | targetChannel.writeAndFlush(NettyTools.webSocketBytes(JSONObject.toJSONString(ResponseBean.ok(chat)))); |
| | | chat.setIsSelf(2); |
| | | ResponseBean toRes = ResponseBean.ok(chat); |
| | | res.setType(2); |
| | | targetChannel.writeAndFlush(NettyTools.webSocketJson(toRes)); |
| | | |
| | | chatProducer.sendMsgHistory(chat); |
| | | } else { |
| | | // 在redis中保存用户未在线时,给该用户发送的消息条数 |
| | | String key = AppContants.MSG_NOTICE + chat.getTo(); |
| | | String key = AppContants.MSG_NOTICE + chat.getTargetId(); |
| | | String value = redisUtils.getString(key); |
| | | if (StrUtil.isEmpty(value)) { |
| | | redisUtils.set(key , 1); |