Skip to content

Commit c3516ae

Browse files
Delete mqtt qos0 when connection closes
1 parent d072337 commit c3516ae

File tree

3 files changed

+6
-37
lines changed

3 files changed

+6
-37
lines changed

deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1906,7 +1906,7 @@ log_delayed_will_failure(Topic, ClientId, Reason) ->
19061906
[Topic, ClientId, Reason]).
19071907

19081908
maybe_delete_mqtt_qos0_queue(
1909-
State = #state{cfg = #cfg{clean_start = true},
1909+
State = #state{cfg = #cfg{session_expiry_interval_secs = 0},
19101910
auth_state = #auth_state{user = #user{username = Username}}}) ->
19111911
case get_queue(?QOS_0, State) of
19121912
{ok, Q} ->

selenium/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"author": "",
1313
"license": "ISC",
1414
"dependencies": {
15-
"chromedriver": "^135.0",
15+
"chromedriver": "^137.0",
1616
"ejs": "^3.1.8",
1717
"express": "^4.18.2",
1818
"geckodriver": "^3.0.2",

selenium/test/queuesAndStreams/autodelete-mqtt-qos0.js

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ const { By, Key, until, Builder } = require('selenium-webdriver')
22
require('chromedriver')
33
const assert = require('assert')
44
const { buildDriver, goToHome, goToQueue, captureScreensFor, teardown, doUntil, findTableRow } = require('../utils')
5-
const { createQueue, deleteQueue, getManagementUrl, basicAuthorization } = require('../mgt-api')
6-
const mqtt = require('mqtt')
5+
const { createQueue, getManagementUrl, basicAuthorization } = require('../mgt-api')
6+
const { openConnection, getConnectionOptions } = require('../mqtt')
77

88
const LoginPage = require('../pageobjects/LoginPage')
99
const OverviewPage = require('../pageobjects/OverviewPage')
@@ -14,20 +14,12 @@ const ConnectionsPage = require('../pageobjects/ConnectionsPage');
1414

1515
describe('Given an MQTT 5.0 connection with a qos 0 subscription with zero sessionExpiryInterval', function () {
1616
let login
17-
let queuesAndStreams
17+
let queuesAndStreamsPage
1818
let queuePage
1919
let overview
2020
let captureScreen
2121
let queueName
22-
let mqttOptions
2322

24-
let mqttProtocol = process.env.MQTT_PROTOCOL || 'mqtt'
25-
let usemtls = process.env.MQTT_USE_MTLS || false
26-
let rabbit = process.env.RABBITMQ_HOSTNAME || 'localhost'
27-
let mqttUrl = process.env.RABBITMQ_MQTT_URL || "mqtt://" + rabbit + ":1883"
28-
let username = process.env.RABBITMQ_AMQP_USERNAME || 'management'
29-
let password = process.env.RABBITMQ_AMQP_PASSWORD || 'guest'
30-
let client_id = process.env.RABBITMQ_AMQP_USERNAME || 'selenium-client'
3123
let mqttClient
3224

3325
before(async function () {
@@ -52,30 +44,7 @@ describe('Given an MQTT 5.0 connection with a qos 0 subscription with zero sessi
5244
"x-queue-type": "quorum"
5345
})
5446

55-
mqttOptions = {
56-
clientId: client_id,
57-
protocolId: 'MQTT',
58-
protocol: mqttProtocol,
59-
protocolVersion: 5,
60-
keepalive: 10000,
61-
clean: true,
62-
reconnectPeriod: '1000',
63-
properties: {
64-
sessionExpiryInterval: 0
65-
}
66-
}
67-
if (mqttProtocol == 'mqtts') {
68-
mqttOptions["ca"] = [fs.readFileSync(process.env.RABBITMQ_CERTS + "/ca_rabbitmq_certificate.pem")]
69-
}
70-
if (usemtls) {
71-
mqttOptions["cert"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_certificate.pem")
72-
mqttOptions["key"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_key.pem")
73-
} else {
74-
mqttOptions["username"] = username
75-
mqttOptions["password"] = password
76-
}
77-
78-
mqttClient = mqtt.connect(mqttUrl, mqttOptions)
47+
mqttClient = openConnection(getConnectionOptions())
7948
let subscribed = new Promise((resolve, reject) => {
8049
mqttClient.on('error', function(err) {
8150
reject(err)

0 commit comments

Comments
 (0)