我有MqttConnect.js文件和mqttws31.js lib。我要mqttws31.js所有源代码都包含我的MqttConnect.js文件,怎么可能?。
当我从mqttws31.js和过去的mqttconnect.js文件中复制所有内容时。此时会发生此错误:
ReferenceError:未定义消息传递
如果我尝试这种方式它工作正常:
<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
更新
我想要使用它,没有html页面
答案 0 :(得分:1)
这可能是由于JavaScript加载的怪癖。您可以在this answer中找到一个很好的示例。
快速回答是将两个JavaScript文件加载到托管它们的HTML文档的主体中,并在脚本上方放置MQTT库。
不要只是将图书馆复制到您自己的文件中,如果您没有正确地归功于图书馆的资源,那么表格形式非常糟糕且版权受到侵犯。
答案 1 :(得分: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>
我自己尝试过,我没有收到任何错误。 (窗口未定义)
答案 2 :(得分:0)
两个文件之间存在依赖关系,即MqttConnect.js中有代码需要mqttws31.js中的代码才能正常工作。所以我假设你在MqttConnect.js的末尾粘贴了mqttws31.js的内容。在MqttConnect.js的开头粘贴mqttws31.js的内容应该解决这个问题。您的MqttConnect.js应该看起来像
// Contents of mqttws31.js ...
// Contents of MqttConnect.js ...