/**
* 基于stomp协议接收JMS消息
* @param args 参数
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception
{
StompConnection conn = new StompConnection();
conn.open("127.0.0.1", 61613);
conn.connect("user1", "password1");
HashMap<String, String> headers = new HashMap<String,String>();
headers.put(Stomp.Headers.TRANSFORMATION, "jms-stomp-map-json");
conn.subscribe(JMSInfo.STOMP_QUEUE_NAME, Subscribe.AckModeValues.AUTO, headers);
// conn.subscribe(JMSInfo.STOMP_TOPIC_NAME, Subscribe.AckModeValues.AUTO, headers);
while (true) {
try {
StompFrame msg = conn.receive(60000);
String dataType = msg.getHeaders().get("dataType");
String className = msg.getHeaders().get("className");
String text = msg.getBody();
if ("json".equals(dataType) && "java.util.Map".equals(className)) {
Map<String, Object> map = JsonUtils.toJavaObject(text, Map.class);
System.out.println("received map: " + map);
} else {
System.out.println("received text: " + text);
}
// 暂停 0.5 秒
Thread.sleep(500);
} catch (Exception e) {
e.printStackTrace();
break;
}
}
conn.unsubscribe(JMSInfo.STOMP_QUEUE_NAME);
// conn.unsubscribe(JMSInfo.STOMP_TOPIC_NAME);
conn.disconnect();
}
ActiveMQ - stomp 协议接收消息
最新推荐文章于 2022-07-22 15:14:35 发布