尝试使用非常简单的程序在Active MQ 5.11.1中使用WebSocket
在Active MQ中启用了WebSocket,如下所示
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&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
对此有些了解?
答案 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) { ... };
至少,适用于我的配置。