evcc-io/tests/mqtt.ts

25 lines
549 B
TypeScript

import mqtt from "mqtt";
export async function isMqttReachable(
broker: string,
username: string,
password: string
): Promise<boolean> {
try {
const client = mqtt.connect(`mqtt://${broker}`, {
connectTimeout: 2000,
username,
password,
});
await new Promise<void>((resolve, reject) => {
client.once("connect", () => resolve());
client.once("error", (err) => reject(err));
});
client.end();
return true; // connection successful
} catch {
return false; // connection failed
}
}