Stomp ActiveMQ问题

时间:2012-06-06 05:18:33

标签: activemq stomp custom-protocol

我是Stomp ActiveMQ的新手。我想从Android客户端创建一个登录,我不知道如何使用ActiveMq。我已经安装了活动mq,配置了stomp并运行了stompexample。 1.如果我在activemq.xml中添加以下行,则从命令行运行activemq时出错:

 <transportConnector name="stomp+nio" uri="stomp+nio://localhost:61612"/>
            <transportConnector name="stomp+ssl" uri="stomp+ssl://localhost:61612"/>
  1. 有人可以解释tx1和tx2的含义吗?有没有办法将队列中的消息发送给特定客户端?如何?

    connection.connect(“system”,“manager”);

        connection.begin("tx1");
        connection.send("/queue/test", "message1");
        connection.send("/queue/test", "message2");
        connection.commit("tx1");
    
        connection.subscribe("/queue/test", Subscribe.AckModeValues.CLIENT);
    
        connection.begin("tx2");
    
        StompFrame message = connection.receive();
        System.out.println(message.getBody());
        connection.ack(message, "tx2");
    
        message = connection.receive();
        System.out.println(message.getBody());
        connection.ack(message, "tx2");
    
        connection.commit("tx2");
    
        connection.disconnect();
    
  2. 有人可以告诉我如何创建一个应用程序,在队列中发送包含用户名,密码的文本,并在注册成功时收到答案吗?

1 个答案:

答案 0 :(得分:1)

您需要使用不同的端口号配置传输连接器,它们不能共享端口61612.您的配置是创建Stomp NIO连接器和不同的Stomp SSL连接器。

您无法将消息发送到不同的客户端,只需将它们放在队列中,如果有客户订阅它就会收到消息,这就是基于队列的消息传递的本质。 TX1 TX2内容正在事务中发送消息。

建议您花一些时间阅读JMS Messaging,Stomp规范和其他一些基于消息传递的教程。