提问人:Eridano 提问时间:7/21/2023 最后编辑:BritsEridano 更新时间:7/21/2023 访问量:36
我无法在 RabbitMQ 管理门户上使用 MQTT over WebSocket 在队列上看到消息,并且它们未存储在队列中
I'm not able to see messages on queue on RabbitMQ managment portal with MQTT over WebSocket and they are not stored in a queue
问:
按照 RabbitMQ 文档,我正在尝试在浏览器中订阅和接收来自该主题的消息。同时,为了将它们发送到 RabbitMQ,我使用了一个名为 mqtt-explorer 的程序。
在浏览器的控制台中,我能够看到我发送的消息实际上已经到达,即使当我尝试打开 RabbitMQ 的管理门户时,我只看到一些自动生成的队列,这些队列总是说我的队列上有 0 条消息。/topic/test
这是我用mqtt-explorer发送的内容: 这是我与mqtt-explorer发送的同时连接的浏览器:
如果此时浏览器未连接,则消息不会出现在 RabbitMQ 上的队列中。
这是我在仅连接 mqtt-explorer 并发送消息时能够看到的。
在浏览器的代码下方:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello MQTT</title>
</head>
<body>
<h1>Hello MQTT</h1>
<p>This is a basic HTML page with the title</p>
<!-- Source library -->
<script src="mqttws31.js" type="text/javascript"></script>
<script>
var wsbroker = "localhost"
var wsport = 15675; // port for above
var client = new Paho.MQTT.Client(wsbroker, wsport, "/ws",
"myclientid_" + parseInt(Math.random() * 100, 10));
client.onConnectionLost = function (responseObject) {
console.log("CONNECTION LOST - " + responseObject.errorMessage);
};
client.onMessageArrived = function (message) {
console.log("RECEIVE ON " + message.destinationName + " PAYLOAD " + message.payloadString);
};
var options = {
timeout: 3,
keepAliveInterval: 30,
onSuccess: function () {
console.log("CONNECTION SUCCESS");
client.subscribe('/topic/test', {qos: 1});
},
onFailure: function (message) {
console.log("CONNECTION FAILURE - " + message.errorMessage);
}
};
console.log("CONNECT TO " + wsbroker + ":" + wsport);
client.connect(options);
</script>
</body>
</html>
答: 暂无答案
评论
cleanSession: false
options