之前用到的mqtt都是在后台简历MQTT连接,现在想不要后台,直接在前端建立MQTT客户端,更方便实用。
1).首先需要下载nodejs 然后用nodejs自带的npm模块安装Mosca。
2).在nodejs 路径下添加一个server.js ,内容如下:()
var mosca = require('mosca');
var ascoltatore = {
//using ascoltatore
};
var settings = {
http: {
port: 1884,
bundle: true,
static: './'
},
backend: ascoltatore
};
var server = new mosca.Server(settings);
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
// fired when a message is received
server.on('published', function(packet, client) {
console.log('Published', packet.payload);
});
server.on('ready', setup);
// fired when the mqtt server is ready
function setup() {
console.log('Mosca server is up and running');
}
3).打开doc窗口,在node 的安装路径下运行server.js。如图:
4).js代码如下:
client = new Paho.MQTT.Client('192.168.168.104', 1884, "bbb");
// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
// connect the client
client.connect({
onSuccess: onConnect
});
// called when the client connects
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("onConnect");
client.subscribe("主题");
message = new Paho.MQTT.Message("111111111");
message.destinationName = "主题";
client.send(message);
}
// called when the client loses its connection
function onConnectionLost(responseObject) {
if(responseObject.errorCode !== 0) {
console.log("onConnectionLost:" + responseObject.errorMessage);
}
}
// called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived:" + message.payloadString);
}
亲测有效!!!!
注意:页面需要调用mqttws31.js
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js