javascript - 如何将 jms 消息发送到 activeMQ 并使用 mqttJS 在 javascript 中正确解码它

标签 javascript java jms mqtt decode

我有一个 java 后端,我可以通过

向主题发送消息
jmsTemplate.convertAndSend("topic", "Hello World!");

在我的 javascript 前端中,我使用 mqttJS 连接到 activeMQ 并接收消息:

    let mqtt = require('mqtt')
    let options ={
        clientId:"test",
        username:"username",
        useSSL: true,
        password:"password",
        clean:true};
    let client  = mqtt.connect(
        'wss://someUrl.com:61619',
        options);

    client.on('connect', function () {
        client.subscribe('myTopic', function (err) {
            if (!err) {
                console.log("successfully connected to myTopic'");
            }
        })
    });

    client.on('message', function (topic, message) {
        console.log(message.toString());
    });

我从后端收到的消息是这样的:

S�A S�)�x-opt-jms-destQ�x-opt-jms-msg-typeQ Ss�   f    
�/ID:myID@�topic://myTopic@@@@�  j��< St�
e Sw�  Hello World!

我的消息“Hello World!”有没有。而且还有一堆不可读的内容,我会从标题中猜测。

我在后端尝试了不同的 MessageConverter,在前端尝试了不同的解析器。什么都没用。

我需要做什么才能得到“Hello World!”作为消息?或者有没有更好的方法来发送消息,使用 jms,这是必需的。

最佳答案

如果你正在使用 mqtt 3.0.0你应该添加额外的参数:

If you are connecting to a broker that supports only MQTT 3.1 (not 3.1.1 compliant), you should pass these additional options:

{
   protocolId: 'MQIsdp',
   protocolVersion: 3
 }

关于javascript - 如何将 jms 消息发送到 activeMQ 并使用 mqttJS 在 javascript 中正确解码它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291905/

相关文章:

javascript - 无法在html表格中显示json数组

javascript - 隐藏具有相同类或 ID 的第二个元素

java - 尝试将消息推送到 Activemq 时出现 NamingException

java - 持久化实体不可序列化

java - WebSphere Application Server v 7.0 是否与 MQ v 6.0.2.8 兼容?

javascript - 如何在三个JS中截取CSS 3D渲染器的屏幕截图?

javascript - 如何从我的 javascript Web 应用程序调用 google 云函数

java - MIDI channel 轨道关联

java - 如何将对象从一个 ArrayList 移动到另一个,避免 GC 问题

java - java 8编译的jar文件可以在java 7上运行吗?