2014-08-20 5 views
0

Я новичок в MQTT так может кто-нибудь помочь мне для подключения MQTT с Mosquitto с помощью JavaScript Я использую этот код, но он дает ошибку ...MQTT + Mosquitto + Javascript в окнах

Ошибка подключения: ошибка AMQJS0007E Цоколь: не определено.

Мой код:

<script type='text/javascript' src='jquery-1.10.1.js'></script> 

<script type='text/javascript' src="mqttws31.js"></script> 
 

    var client = new Messaging.Client("ns.testingindia.tld", 1883, "myclientid_" + parseInt(Math.random() * 100, 10)); 

    //Gets called if the websocket/mqtt connection gets disconnected for any reason 
    client.onConnectionLost = function (responseObject) { 
     //Depending on your scenario you could implement a reconnect logic here 
     alert("connection lost: " + responseObject.errorMessage); 
    }; 

    //Gets called whenever you receive a message for your subscriptions 
    client.onMessageArrived = function (message) { 
     //Do something with the push message you received 
     $('#messages').append('Topic: ' + message.destinationName + ' | ' + message.payloadString + '
'); }; //Connect Options var options = { timeout: 3, //Gets Called if the connection has sucessfully been established onSuccess: function() { alert("Connected"); }, //Gets Called if the connection could not be established onFailure: function (message) { document.write("Connection failed: " + message.errorMessage); alert("Connection failed: " + message.errorMessage); } }; //Creates a new Messaging.Message Object and sends it to the HiveMQ MQTT Broker var publish = function (payload, topic, qos) { //Send your message (also possible to serialize it as JSON or protobuf or just use a string, no limitations) var message = new Messaging.Message(payload); message.destinationName = topic; message.qos = qos; client.send(message); } //]]>

ответ

1

Какая версия Mosquitto вы используете?

версия Текущая версия (1.3.4) изначально не поддерживает WebSockets (следующая версия будет)

Вы можете использовать что-то вроде Lighttpd с mod_websockets на поставку поддержки WebSocket (инструкции для Linux связаны здесь: http://test.mosquitto.org/ws.html), или вы можете построить новую версию Mosquitto из главы исходного дерева.

+0

Спасибо за ответ .. Пожалуйста, научи меня, что, как построить собственный Mosquitto для окон – kapilkarda

2

Быстрый способ проверить, что ваш брокер не вызывает проблемы, заключается в подключении к порту broker.mqttdashboard.com: 8000, если это не работает. следующая догадка заключается в том, что у вас установлен только mosquitto и нет сервера websockets, который вам нужен, если вы хотите использовать JS для прямого подключения к брокеру по t он веб.

Другой, но более быстрый способ запускать и запускать сейчас загружается hivemq (пробная версия поддерживает 25 соединений), у него есть mktt broker с встроенными веб-камерами и будет работать на окнах, и он будет запущен в течение 5 минут.

+0

Спасибо за ответ .. Это очень полезно для меня, но я использую этот брокер в моем Cordova проекте он не работает но в веб-браузере его работа, пожалуйста, помогите мне .. – kapilkarda

+0

@kapilkarda У меня нет опыта компиляции его на windows, но это должно быть hep. https://answers.launchpad.net/mosquitto/+faq/1264 и https://answers.launchpad.net/mosquitto/+question/119919 –

2

Вы подключаетесь к порту 1883, который является портом MQTT по умолчанию. Я предполагаю, что вы хотите использовать Websockets, и это обычно будет настроено на другой номер порта. Если брокер, который вы используете, поддерживает Websocket, убедитесь, что вы подключаетесь к правильному порту с помощью Messaging.Client().

Если вы используете брокер Mosquitto, вам понадобится версия 1.4 из ее bitbucket repository для поддержки Websocket, но обратите внимание, что Mosquitto 1.4 еще не выпущен.

+0

Спасибо за ответ Это полезно для меня и, пожалуйста, помогите мне установить этот репозиторий в окнах. – kapilkarda

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