我有一个 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/