JMS (主题) - 如何将客户端实现为生产者和消费者



我必须用activeMQ设计一个JMS应用程序。我有 2 个客户,他们应该同时充当发布者和订阅者。例如,如果第一个客户端绘制smth.,则第二个客户端应该能够在他的GUI上看到它,反之亦然。

我很清楚如何"绑定"到服务器以及如何运行 activeMQ,我只是不知道如何设计客户端、在哪里运行 SWING 以及如何发送绘图。 例如,制片人看起来像这样...

public class Producer {
private static String url = ActiveMQConnection.DEFAULT_BROKER_URL;
private static String subject = "DRAWINGS";
public static void main(String[] args) throws JMSException {
    ConnectionFactory connectionFactory =
        new ActiveMQConnectionFactory(url);
    Connection connection = connectionFactory.createConnection();
    connection.start();
    Session session = connection.createSession(false,
        Session.AUTO_ACKNOWLEDGE);
    Destination destination = session.createTopic(subject);
    MessageProducer producer = session.createProducer(destination);

   // how to implement producer as consumer as well and where to create the SWING
   // and bind it to the client?

    connection.close();
}

}

你创建一个 MessageConsumer 的方式与创建 MessageProducer 的方式相同,如下所示:

    MessageConsumer consumer = session.createConsumer(destination);
    consumer.setMessageListener(new MessageListener() {
        public void onMessage(Message m) {
            // Do something.
        }
    });

当然,为了此示例的目的,您需要通过阻塞循环或某些阻塞循环保持主方法运行,但这是基础知识。

相关内容

最新更新