@Override public Message received(Message msg) throws JMSException { String txt = ""; if (msg instanceof TextMessage) txt =((TextMessage)msg).getText(); log().d("received",txt); HeartbeatListener listener = MApi.lookup(HeartbeatListener.class); if (listener != null) listener.heartbeatReceived(txt); TextMessage ret = getSession().createTextMessage(MSystem.getAppIdent()); return ret; }
public void sendHeartbeat(String cmd) { if (getSession() == null) { log().i("heartbeat has no session"); reset(); return; } // try { // getDestination().getConnection().doChannelBeat(); // } catch (Throwable e) { // log().w("channel beat failed",e); // return; // } try { TextMessage msg = getSession().createTextMessage((cmd == null ? "ping" : cmd) + "," + MSystem.getAppIdent()); Message[] ret = sendJmsBroadcast(msg); LinkedList<String> hosts = new LinkedList<>(); for (Message m : ret) { if (m instanceof TextMessage) hosts.add( ((TextMessage)m).getText() ); } log().d("hosts",hosts); } catch (Throwable e) { log().w(e); } }