ActiveMQ WebSocket - 与STOMP的连接失败:java.io.IOException

时间:2015-04-29 09:29:31

标签: logging websocket log4j jms activemq

尝试使用非常简单的程序在Active MQ 5.11.1中使用WebSocket

在Active MQ中启用了WebSocket,如下所示

<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

这是我的客户代码

var WebSocket = require('ws');
var ws = new WebSocket('ws://127.0.0.1:61614');

ws.on('open', function open() {
  ws.send('something');
});

ws.on('message', function(data, flags) {
    console.log(data);
});

当我运行此节点应用程序时,我收到上述警告,并且消息未到达客户端

 WARN | Transport Connection to: StompSocket_431405783 failed: java.io.IOExcepti
on

对此有些了解?

2 个答案:

答案 0 :(得分:0)

看起来你正试图连接并将任何旧东西发送到ActiveMQ,至少在你给出的例子中是这样。这当然不会起作用,因为您需要使用正确的协议进行通信(目前支持STOMP和MQTT)。

在Node内部有一些用于客户端通信的实现,用于基于STOMP的消息传递。其中一个库是Stomp.js

答案 1 :(得分:0)

回答可能有点迟,对不起,但是......可能就是这样吗?

ws = new WebSocket('ws://domainOrip:61614', 'stomp');

//Notify connection
ws.onopen = function (){
    ws.send('CONNECT\n\n\0');

//Suscription
    ws.send('SUBSCRIBE\ndestination:/topic/topicA\nack:auto\nactivemq.retroactive:true\n\n\0');
};

//Listener
ws.onmessage = function (e) { ... };

至少,适用于我的配置。