2016-02-24 2 views
0

Я попытался связать MQTT с ионическим фреймворком. При попытке отправить сообщение MQTT брокеру (я публикую), когда происходит событие щелчка, я получаю следующее сообщение об ошибке:Не удается подключиться к брокеру MQTT (mosquitto) с Javascript Ionic

"AMQJS0011E Invalid state not connected......" "WebSocket connection to 'ws://test.mosquitto.org:8080/mqtt' failed: Error >during WebSocket handshake: net::ERR_CONNECTION_RESET"

Пожалуйста, кто-нибудь может мне помочь? Я не могу найти решение нигде.

Я также пробовал с портом 1883, но проблема остается такой же.

var App = angular.module("App",["ionic","ngWebSocket"]); 

App.controller("Appctrl",["$scope","$log",Appctrl]); 

function Appctrl($scope,$log,$websocket){ 

$scope.mqtt_on = function() { 

    client = new Paho.MQTT.Client("test.mosquitto.org",  
    Number(8080),"zsrgdxrgdt"); 
    client.connect(); 
    message = new Paho.MQTT.Message("Hello"); 
    message.destinationName = "test/smit"; 
    client.send(message); 
    alert("ON"); 
}; 

$scope.mqtt_off = function() { 
    alert("Off"); 
`enter code here`}; 

}; 

ответ

0

Клиент Paho Javascript является асинхронным, функция connect вернется, прежде чем соединение завершено

Так вызов send делается до того, как соединение установлено.

Функция connect может принимать аргумент, который может содержать функцию обратного вызова для вызова после завершения соединения. Так что-то вроде этого должно работать

client.connect({onSuccess: function(){ 
    message = new Paho.MQTT.Message("Hello"); 
    message.destinationName = "test/smit"; 
    client.send(message); 
}}); 
+0

спасибо, что это работает –

Смежные вопросы