【问题标题】:ActiveMQ WebSocket - Connection to STOMP failed : java.io.IOExceptionActiveMQ WebSocket - 与 STOMP 的连接失败:java.io.IOException
【发布时间】:2015-07-08 11:53:13
【问题描述】:

我正在尝试一个非常简单的程序来在 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

对此有所了解??

【问题讨论】:

    标签: logging websocket log4j jms activemq


    【解决方案1】:

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

    Node 内部的客户端通信有多种实现,用于基于 STOMP 的消息传递。一个这样的库是Stomp.js

    【讨论】:

    • 嘿 .. 我什至尝试过使用 Stomp.js。同样的错误。 Stomp.js , node-stomp.. 两个库!
    • 你需要用一个更有意义的例子来更新你的问题,因为当前的例子不起作用。
    • 坦率地说。其非常简单的示例..我将一些数据推送到活动 mq,并且我希望在这些协议 ws:// 或 stomp:// 之一中接收数据。目前我只能在 jms 消费者中接收消息。我想接收使用 websocket 或 stomp 协议的消费者
    【解决方案2】:

    也许回答有点晚了,对不起,但是……可能是这样吗?

    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) { ... };
    

    至少,你的配置对我有用。

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 1970-01-01
      • 2016-06-08
      • 2012-11-03
      • 1970-01-01
      • 2013-06-27
      • 2015-04-06
      • 2022-12-15
      • 2021-09-28
      相关资源
      最近更新 更多