Java 如何在Node JS中为ActiveMQ编写发送方应用程序

Java 如何在Node JS中为ActiveMQ编写发送方应用程序,java,node.js,activemq,stomp,Java,Node.js,Activemq,Stomp,我想创建并实现一个用于消息传递的JMS发送者应用程序,并用JAVA创建了同样的应用程序。这是我用Java编写的示例代码片段 try { factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); connection = factory.createConnection(); connection.start(); session = connectio

我想创建并实现一个用于消息传递的JMS发送者应用程序,并用JAVA创建了同样的应用程序。这是我用Java编写的示例代码片段

    try {
        factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        connection = factory.createConnection();
        connection.start();
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        destination = session.createQueue("SAMPLEQUEUE");
        producer = session.createProducer(destination);
        try {

                TextMessage message = session.createTextMessage();
                message.setText("hello");
                producer.send(message);
                System.out.println("Sent: " + message.getText());

        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (JMSException e) {
        e.printStackTrace();
    }
这很好,我也能用我的接收器接收信息。我想更改NodeJS中的sender实现,并使其成为NodeJS应用程序。我是Node JS的新手,在Node JS中搜索ActiveMQ后,我不太了解Node JS。任何指向它的指针都会非常有用

问候,, 亚班卡

编辑

我对节点JS使用了stomp。示例代码如下所示:

var Stomp = require('stomp-client');
var destination = '/queue/sensorstreamqueue';
var client = new Stomp('10.53.219.153', 61613, 'user', 'pass');
var     lazy    = require("lazy"),
        fs  = require("fs");



client.connect(function(sessionId) {
new lazy(fs.createReadStream('input.csv'))
     .lines
     .forEach(function(line){
         client.publish(destination, line.toString());
     }
 );   
    console.log("published");
});
代码正常工作,我的接收者也会收到消息,但我的接收者希望它是TextMessage格式,并给出以下错误:

02-19-2015 08:42:31.288 ERROR [Thread-25] (JmsInputTransporter.handleTextMessage) Error code:401306, Severity : 3 (Error)
Error message:JMS Transporter is expected a TextMessage, received class org.apache.activemq.command.ActiveMQBytesMessage.
Error description:JMS Transporter is expected a TextMessage, received class org.apache.activemq.command.ActiveMQBytesMessage.

有人可以帮助我如何实现这一点吗?

您可以尝试该模块,或者您可以启用ActiveMQ并使用库。

您需要添加一个标题:

client.publish(destination, 'your content', {
    "amq-msg-type": "text"
});

嗨,乔希,非常感谢你的帮助。我试着用stomp,效果很好。然而,我面临一个小问题,请查看我的编辑以了解更多详细信息,并帮助我解决问题?你能提供你的接收者代码吗?嗨,Josh,不幸的是,接收者是我不拥有的组件的一部分,我希望消息以文本消息格式发送给投反对票的人,如果你能解释一下你不喜欢这个问题的地方就好了。也许下次我能提高!!我在我的工作中发现了一个类似的问题。通过stomp客户端发送消息最终在Java应用程序中作为content属性中的ByteSequence,但在text属性中应该是纯文本。如果我发现了什么,我会回来检查的。