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个消息到queue2

12         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 stub

13         JMSTopic jt=new JMSTopic();

14         jt.setSession();

15         

16         //异步接收信息,监听queue2

17         

18         System.out.println("异步接收前");

19     

20         

21         

22         jt.receiveMsg("queue2", new  MessageListener() {

23             

24             @Override

25             //当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 block

33                     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)