我是Cordova开发的新手,所以我想知道是否有人可以帮助我。
我正在尝试开发一个与蚊子服务器通信的示例cordova应用程序。
我试图使用插件here,但看起来这样不起作用,因为有一个java文件试图复制哪个不可用
<source-file src="src/android/Mqtt.java" target-dir="src/com/arcoirislabs/mqttcont" />
并且我认为在mqtt.js中生成连接url的方式存在错误
if (data.secure) {
dataUrl = "ssl://" + data.url + data.port;
} else {
dataUrl = "tcp://" + data.url + data.port;
};
我认为它应该像dataUrl = "tcp://" + data.url + ':' + data.port;
顺便说一下,我使用AngularJS ToDO App作为我的例子,不确定这是否是一个问题,发布代码如下:
ToDoCtrl.prototype.publishMqtt = function () {
mqtt.publish({
url: "localhost",
topic: "Kiran/Temp/PNW6",
secure: false,
qos: "0",
clientId: "SampleJavaV3_",
port: "1883",
message: "23.4",
cleanSession: true,
username: null,
password: null,
debug: true,
success: function (data) {
alert(data);
},
error: function (data) {
alert(data);
}
});
};
我在mqtt.js
中的以下行中看到的错误cordova.exec(function (response) {
data.success(response)
}, function (error) { data.error(error); }, "MqTTPlugin", "publish", [dataUrl, data.clientId, quietM, data.username, data.password, cleanSes, data.topic, data.qos, data.message]);
它抱怨
TypeError: Cannot read property 'publish' of undefined
at Object.module.exports.exec (http://localhost:4400/ripple/assets/ripple.js:40:29342)
at Object.sero.publish (http://localhost:4400/plugins/com.arcoirislabs.plugin.mqtt/www/mqtt.js:38:17)
at ToDoCtrl.publishMqtt (http://localhost:4400/scripts/controllers/toDoCtrl.js:86:11)
我还可以看到有一个电话间隙插件here,但我无法理解如何在VS.Net cordova应用程序中使用它。
此致 基兰
答案 0 :(得分:0)
看起来我来不及回答这个问题。我是该插件的原始维护者。请使用我们的新插件。它工作正常。虽然我们定期更新插件以添加新功能和平台。那个时候工作不顺利,因为图书馆的需求没有包含在里面。现在我们与Gradle系统完全兼容,底层库比后者使用的库(这是Eclipse Paho的方式)要好得多。 如果有任何问题或建议,请告诉我。