2016-02-25 5 views
1

У меня есть файл MqttConnect.js и mqttws31.js lib. У меня к mqttws31.js весь исходный код включает мой файл MqttConnect.js, как это возможно ?.включают источник JS в существующий файл * .js

, когда я копирую все от mqttws31.js и прошлых mqttconnect.js файл .То время эта ошибка происходит:

ReferenceError: Messaging is not defined

если я попробовать этот способ, которым это работает отлично:

<head> 
    <meta charset="UTF-8"> 
    <title>Title of the document</title> 
    <script src="http://www.hivemq.com/demos/websocket-client/js/mqttws31.js" type="text/javascript"></script> 

    <script src="MqttJS/MqttConnect.js"></script> 

</head> 

MqttConnect .js файл кода:

// Using the HiveMQ public Broker, with a random client Id 

     var client = new Messaging.Client("broker.mqttdashboard.com",8000, "myclientid_" + parseInt(Math.random() * 100, 10)); 


     //Connect Options 
     var options = { 
      timeout: 60, 
      keepAliveInterval:450, 
      cleanSession:false, 
      //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) { 
       alert("Connection failed -: " + message.errorMessage); 
      } 
     }; 

     function Connect(){ 
      try { 

      client.connect(options) 



      } 
      catch(err){ 
       alert(err.message); 

      } 

     } 

mqttws31.js код:

http://www.hivemq.com/demos/websocket-client/js/mqttws31.js

UPDATE

, где я хочу использовать это, там нет страницы HTML

+1

Вы скопировали все из файла 'mqttws31.js' в' MqttConnect.js' вверху? Я имею в виду содержимое файла 'mqttws.js', а затем файл' MqttConnect.js'. – Savaratkar

+0

Я скопировал все в нижней части, ну, сделайте это –

+1

Да, содержимое 'MqttConnect.js' определяет функцию' Messaging', которая используется в файле 'MqttConnect.js'. Таким образом, содержимое файла «MqttConnect.js» должно сначала загрузиться. – Savaratkar

ответ

1

Это может быть связанно с причудой того, как JavaScript нагрузок. Вы можете найти хороший пример того, как это должно быть сделано в this answer.

Быстрый ответ заключается в том, чтобы поместить загрузку обоих файлов JavaScript в тело документа HTML, размещающего их, с библиотекой MQTT над вашим скриптом.

Не копируйте библиотеку в свой собственный файл, это очень плохая форма и нарушение авторских прав, если вы не должным образом кредитуете источник библиотеки.

+0

, но у меня нет альтернативного пути. и все еще erorr ReferenceError: «окно» не определено. –

+0

«окно» используется в библиотеке для получения DOM веб-страницы, что существенно означает, что страница не закончила загрузку при выполнении сценария. Вы можете попробовать добавить 'defer' к тегам скрипта, которые могут помочь решить эту проблему, поскольку это задерживает загрузку JS до тех пор, пока загрузка не будет загружена. – Rodinga

+0

, где я хочу использовать это, там нет html-страницы –

0

Существует зависимость между этими двумя файлами, то есть, есть код в MqttConnect.js который необходим код в mqttws31.js для правильной работы. Поэтому я предполагаю, что вы вставили содержимое mqttws31.js в конце MqttConnect.js. Вставка содержимого mqttws31.js в начале MqttConnect.js должна исправить это. Ваш MqttConnect.js должен выглядеть

// Contents of mqttws31.js ... 
// Contents of MqttConnect.js ... 
+0

все еще ошибка ReferenceError: «окно» не определено. –

1

содержание Копия mqttws31.js в MqttConnect.js в верхней части (не в нижней части), а затем загрузить файл MqttConnect.js:

<head> 
    <meta charset="UTF-8"> 
    <title>Title of the document</title> 
    <script src="MqttJS/MqttConnect.js"></script> 

</head> 

Я попробовал это сам, я не получаю сообщение об ошибке. (window undefined)

+0

, где я хочу использовать это, там нет html-страницы –

+0

Хорошо, где вы хотите ее использовать? – Savaratkar

+0

Я хочу использовать его, сервер IBM Mobilefirst в http-адаптере, как этот qusentions ansewer http://stackoverflow.com/questions/35579623/include-javascript-library-on-the-server-side-in-mobilefirst –

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