【发布时间】:2018-04-22 16:41:48
【问题描述】:
我正在开发 Java REST API 服务,现在我需要在服务器和移动设备之间建立 TCP 连接以发送消息。我发现 RabbitMQ 是一个好主意,但我真的是 AMQP 协议的新手。问题是如何将消息从服务器发送到从同一队列读取字节的两个客户端。
我的代码:
public class RabitSecClient {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages2");
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
throws IOException {
String message = new String(body, "UTF-8");
System.out.println(" [x] Received 2 '" + message + "'");
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
}
}
我执行此代码两次进行测试,当我发送消息时只有第一个客户接受它。是什么原因?
【问题讨论】:
-
查看 FANOUT 队列并结帐rabbitmq.com/getstarted.html