Bardzo się staram, aby mój klient MQTT działał w mojej aplikacji. Broker jest udostępniany przez CloudMQTT.
Podczas próby uruchomienia następującego kodu w NodeJS klient łączy się prawidłowo z MQTT;
var mqtt = require("mqtt");
var client = mqtt.connect(
"mqtt://m20.cloudmqtt.com",
{
port: 11212,
username: "XXXXXXXX",
password: "XXXXXXXX"
}
);
client.on("connect", function () {
console.log("connected");
});
Jednak gdy uruchamiam ten sam kod (oczywiście bez potrzeby) w interfejsie użytkownika pakiet Bower, klient nie łączy się. Wypróbowałem także inne pakiety JS z przeglądarką MQTT. Preferuję MQTT.js, a nie Paho, ponieważ chciałbym używać wielu subskrypcji z jednym połączonym klientem.
Gdyby console.log(client);
, Wykorzystuje NodeJS protocol: "mqtt"
i protocolId: "MQTT"
. Frontend używa protocol: "ws"
i protocolId: "MQTT"
. Czy to może być problem? Dodanie tych opcji do mqtt.connect nie działa.
Odpowiedzi:
1 dla odpowiedzi № 1Z przeglądarki internetowej jedyną opcją jestbyć połączonym przez MQTT przez Websockets. CloudMQTT używa różnych numerów portów dla natywnych MQTT i MQTT w stosunku do gniazd sieciowych, więc musisz także zmienić numer portu dla kodu przeglądarki na port Websocket wymieniony w panelu kontrolnym CloudMQTT.