2016-02-24 738 views
0

我嘗試將MQTT與Ionic框架綁定。當試圖發送一個MQTT消息給代理(我出版),當點擊事件發生時,我得到以下錯誤:無法使用Javascript Ionic連接到MQTT代理(mosquitto)

"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

謝謝你兄弟的作品 –