使用可用的节点js库将消息发布到Amazon Queue时出错

时间:2018-12-11 19:24:21

标签: node.js activemq stomp amazon-mq

我正在尝试将消息从Node JS发布到Amazon MQ,到目前为止,我尝试过的所有库都似乎没有起作用。

图书馆1:

stomp-client

代码:

var Stomp = require('stomp-client');
var destination = '/topic/{new_topic}';
var client = new Stomp('{prefix}.amazonaws.com', 
    61614, 
    '{user}', 
    '{password}');

client.connect(function(sessionId) {
    client.publish(destination, 'Oh herrow');
});

第一个库出错:

Emitted 'error' event at:
    at StompFrameEmitter.<anonymous> (project_path\node_modules\stomp-client\lib\client.js:236:10)
    at StompFrameEmitter.emit (events.js:182:13)
    [... lines matching original stack trace ...]
    at Socket.Readable.push (_stream_readable.js:219:10)

图书馆2:

stompit

代码:

const stompit = require('stompit');

var connectOptions = {
  'host': '{prefix}.amazonaws.com',
  'port': 61614,
  'connectHeaders':{
    'host': '/',
    'login': '{user}',
    'passcode': '{password}',
    'heart-beat': '5000,5000'
  }
};

stompit.connect(connectOptions, function(error, client) {

  if (error) {
    console.log('connect error ' + error.message);
    return;
  }

  var sendHeaders = {
    'destination': '/topic/{new_topic}',
    'content-type': 'text/plain'
  };

  var frame = client.send(sendHeaders);
  frame.write('hello');
  frame.end();

});

第二个库出错:connect error unexpected end of stream

我不确定我还能尝试什么,但是由于错误消息甚至不够冗长,而且似乎没有很多关于此问题的在线信息,我似乎还停留在这里。

在亚马逊论坛上,只有我发现的相关文章没有答案: https://forums.aws.amazon.com/thread.jspa?messageID=831730&tstart=0

1 个答案:

答案 0 :(得分:0)

解决这个问题对我有用的是将 ssl 连接设置为 true,如下所示:

[info] welcome to sbt 1.5.2 (Amazon.com Inc. Java 11.0.9.1)

stomp+ssl 连接的端口必须设置为 61614。