activemq 异步和同步接收

时间:2023-03-10 04:11:35
activemq 异步和同步接收

来点实在的代码,用例子来说明:

1.异步接收,主要设置messageListener。,然后编写onmessage方法,很简单

a.客户端发送5条消息

 package ch02.chat;

 import javax.jms.JMSException;

 public class ClientTest3 {

     public static void main(String[] args) throws JMSException {
// TODO Auto-generated method stub
JMSTopic jt=new JMSTopic();
jt.setSession();
//发送5个消息到queue2
for(int i=0;i<10;i++)
{
jt.writeMessage("queue2", "xo"+i,4); } } }

b.接收端接收5条消息

 package ch02.chat;

 import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage; public class ClientTest3Response { public static void main(String[] args) throws JMSException {
// TODO Auto-generated method stub
JMSTopic jt=new JMSTopic();
jt.setSession(); //异步接收信息,监听queue2 System.out.println("异步接收前"); jt.receiveMsg("queue2", new MessageListener() { @Override
//当topic, queue2中有信息的时候
public void onMessage(Message message) { TextMessage mm=(TextMessage)message;
try {
System.out.println("接收到信息"+mm.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}); System.out.println("异步接收后"); }
}

执行结果如下:

异步接收前
异步接收后
接收到信息xo0
接收到信息xo1
接收到信息xo2
接收到信息xo3
接收到信息xo4
接收到信息xo5
接收到信息xo6
接收到信息xo7
接收到信息xo8
接收到信息xo9

同步的以后再写好累。