首页 > 代码库 > activemq 异步和同步接收

activemq 异步和同步接收

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

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

a.客户端发送5条消息

 1 package ch02.chat; 2  3 import javax.jms.JMSException; 4  5 public class ClientTest3 { 6  7     public static void main(String[] args) throws JMSException { 8         // TODO Auto-generated method stub 9         JMSTopic jt=new JMSTopic();10         jt.setSession();11         //发送5个消息到queue212         for(int i=0;i<10;i++)13         {14             jt.writeMessage("queue2", "xo"+i,4);15             16         }17         18 19     }20 21 }
View Code

b.接收端接收5条消息

 1 package ch02.chat; 2  3 import javax.jms.JMSException; 4 import javax.jms.Message; 5 import javax.jms.MessageListener; 6 import javax.jms.TextMessage; 7  8 public class ClientTest3Response { 9     10 11     public static void main(String[] args) throws JMSException {12         // TODO Auto-generated method stub13         JMSTopic jt=new JMSTopic();14         jt.setSession();15         16         //异步接收信息,监听queue217         18         System.out.println("异步接收前");19     20         21         22         jt.receiveMsg("queue2", new  MessageListener() {23             24             @Override25             //当topic, queue2中有信息的时候26             public void onMessage(Message message) {27                 28                 TextMessage mm=(TextMessage)message;29                 try {30                     System.out.println("接收到信息"+mm.getText());31                 } catch (JMSException e) {32                     // TODO Auto-generated catch block33                     e.printStackTrace();34                 }35                 36             }37         });38         39         System.out.println("异步接收后");40         41         }42     }
View Code

执行结果如下:

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

 

同步的以后再写好累。

activemq 异步和同步接收