public void getsendMessageNotimeOut(Integer keys, Object message) { IoSession session = getSession(keys); log.info("反向发送消息到客户端Session---key=" + keys + "----------消息=" + message); if (MemoryData.minaClientSendTime.get(keys) != null && new Date().getTime() - MemoryData.minaClientSendTime.get(keys).getTime() > 1000 * 60 && session.isConnected()) { System.out.println("发送消息----------------------------"); JsonConfig config = new JsonConfig(); config.registerDefaultValueProcessor(Integer.class, new MyDefaultIntegerValueProcessor()); JSONObject json = JSONObject.fromObject(message, config); log.info("转化后的json的内容:" + json); session.write(json); } }
public void getsendMessage(Integer keys, Object message) { log.info("SessionMap.map.size:" + map.size()); IoSession session = getSession(keys); // sdfdg(message); log.info("反向发送消息到客户端Session---key=" + keys + "----------消息=" + message); if (session == null || !session.isConnected()) { againSendMessage(keys, message); return; } else { log.info("发送消息----------------------------"); JsonConfig config = new JsonConfig(); config.registerDefaultValueProcessor(Integer.class, new MyDefaultIntegerValueProcessor()); JSONObject json = JSONObject.fromObject(message, config); log.info("转化后的json的内容:" + json); session.write(json); } }
public void againSendMessage(Integer keys, Object message) { try { System.out.println("暂停5秒然后重新发送消息"); TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } IoSession session = getSession(keys); if (session != null && session.isConnected()) { JsonConfig config = new JsonConfig(); config.registerDefaultValueProcessor(Integer.class, new MyDefaultIntegerValueProcessor()); JSONObject json = JSONObject.fromObject(message, config); System.out.println("转化后的json的内容:" + json); session.write(json); } else { MinaMessage msg = (MinaMessage) message; MemoryData.minaMessageMap.remove(msg.getTaskId()); MemoryData.msgUserMap.remove(msg.getTaskId()); String ipAddress = MemoryData.sysIpAddress.get(keys); if (ipAddress == null) { log.info("查询出的服务器为null,key值为" + keys + ",内容为:" + msg); log.info(message.toString()); } // 插入表中 // InsertSmsMethod.insertSms(keys, ipAddress); Integer info = null; if (msg.getTypeId().equals(MinaExecute.CHECKLOG_URL) || msg.getTypeId().equals(MinaExecute.EDIT_SHELLFILE)) { info = ((MonitorSysPrograminfo) msg.getMsg()).getId(); } FeedBack feedBack = new FeedBack(); if (ActionContext.getContext() != null) { HttpServletRequest request = ServletActionContext.getRequest(); MonitorSysContact user = (MonitorSysContact) request.getSession().getAttribute("user"); feedBack.logReader("与" + ipAddress + "服务器的通信失败", user, info); } else { feedBack.allPush(new Date().toLocaleString() + "——与" + ipAddress + "服务器的通信失败"); log.info("弹出提示:与" + ipAddress + "服务器的通信失败"); } } }