js连接mqtt
项目中要用到mqtt,前端调用,使用github开源的paho-mqtt.js,api还是挺全面的,网上各种教程很全面,但是感觉代码过于杂乱,故而封装的一下。仿jquery ajax调用方法。
首先本项目依赖 paho-mqtt.js
1.引用paho-mqtt.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script>
2.引用封装的 MqttX.js(源代码点击查看)
3.开始调用初始化方法
mqttX.init({
id:'10',
ip:'47.92.127.210',
port:61623,
success:function(){
console.log("mqttx连接成功");
mqttX.subscribe('vp1');
},
error:function(){
console.log("mqttx连接失败");
},
connectLost:function(){
console.log("mqttx连接丢失");
},
onMessage:function(message){
console.log("mqttx",message);
}
});
参数列表
参数 | 是否必须 | 默认 | 说明 |
---|---|---|---|
id | 必须 | 0 | mqtt客户端id |
ip | 必须 | 127.0.0.1 | mqtt服务端ip地址 |
port | 必须 | 61623 | mqtt服务端ws端口号 |
success | 非必须 | 无 | 连接成功回调 |
error | 非必须 | 无 | 连接失败回调 |
connectLost | 非必须 | 无 | 连接断开回调 |
onMessage | 非必须 | 无 | 消息通知 |
4.其他方法
1.订阅主题
//订阅主题
mqttX.subscribe(topic,[qos]);
参数列表
参数 | 是否必须 | 默认 | 说明 |
---|---|---|---|
topic | 必须 | 无 | 主题 |
qos | 非必须 | 0 | 订阅主题的qos |
返回类型:boolean
2.取消订阅
//取消订阅主题
mattX.unsubscribe(topic);
参数列表
参数 | 是否必须 | 默认 | 说明 |
---|---|---|---|
topic | 必须 | 无 | 主题 |
返回类型:boolean
3.重新连接
//重新连接
mattx.reconnect();
参数列表
- 无参数
返回类型:boolean
4.发送消息
//发送消息
mattx.sendMessage(topic,obj);
参数列表
参数 | 是否必须 | 默认 | 说明 |
---|---|---|---|
topic | 必须 | 无 | 主题 |
obj | 必须 | 无 | 发送的信息 |
返回类型:boolean