wang-hao-jie
2021-12-07 8a82baca367e2fb25d8fa55d21f9b25f5ece74df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package cn.exrick.xboot.your.util;
 
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;
 
public class Recv {
    private final static String QUEUE_NAME = "5201154049";
 
    public static void main(String[] argv) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("111.63.178.115");
        factory.setPort(1883);
        factory.setUsername("artemis_28156526_8SS2BGXE");
        factory.setPassword("1GVZ2F7C");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
//请注意,我们也在这里声明了队列。因为我们可能在发布者之前启动消费者,所以我们希望在尝试使用消息之前确保队列存在。
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
//我们即将告诉服务器从队列中传递消息。因为它会异步地向我们发送消息,
// 所以我们以对象的形式提供一个回调,它将缓冲消息,直到我们准备好使用它们。这就是DeliverCallback子类的作用。
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody(), "UTF-8");
            System.out.println(" [x] Received '" + message + "'");
        };
        channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
    }
}