【问题标题】:Rabbitmq , send message to two clients at the same timeRabbitmq,同时向两个客户端发送消息
【发布时间】: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);
    }
}

我执行此代码两次进行测试,当我发送消息时只有第一个客户接受它。是什么原因?

【问题讨论】:

标签: java rabbitmq


【解决方案1】:

您好,看看下面的网站可能会得到您问题的答案。如果您将任何消息放入特定队列,基本上 RabbitMq 是基于发布订阅机制的。如果访问相同的队列,任何数量的用户都会收到该消息。

https://pubs.vmware.com/vfabric52/index.jsp?topic=/com.vmware.vfabric.rabbitmq.2.8/rabbit-web-docs/tutorials/tutorial-three-java.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 2017-10-26
    • 2015-04-07
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多