请选择 进入手机版 | 继续访问电脑版

UBAINS

 找回密码
 立即注册
搜索
热搜: UBAINS
查看: 642|回复: 0

[编程技巧] 主机创建MQTT客户端连接

[复制链接]

71

主题

75

帖子

706

积分

公司员工

积分
706
发表于 2021-11-8 09:03:17 | 显示全部楼层 |阅读模式
//创建MQTT客户端连接实例,fnGetResRMS为接收返回数据方法
var devMQTT= new _MQTT(serverIPAddress + ":1883", fnGetResRMS);

//创建在线、掉线发送数据,当客户端在线时会主动往onlineTopic 发送onlineData 数据,当客户端不在线时会主动往onlineTopic 发送offlineData 数据
//与传统TCP连接不同的是,MQTT在掉线时,主题还能收到掉线的数据。
onlineTopic = "/maintain/room/online/" + metUUID + "/";                    //定义网关是否在线主题,固定格式
onlineData = JSON.stringify({ "udid": metUUID, "action": "online", "value": 1 });  //在线发送数据,固定格式
offlineData = JSON.stringify({ "udid": metUUID, "action": "online", "value": 0 });   //不在线发送数据,固定格式
devMQTT.will_set(onlineTopic, onlineData, offlineData);

//订阅主题格式
devMQTT.subscribe("/maintain/room/master/" + metUUID + "/");         

//设置用户名密码
devMQTT.username_pw_set("mqtt@cmdb", "mqtt@passw0RD");
//设置ClientId设置
devMQTT.client_id_set("officexxxxxXXXXXXXXXXXXXXX00001");

//接收MQTT返回数据格式
function fnGetResRMS(topic, data) {
    //topic接收到的主题
    //接收到的主题对应的数据
}

//发送数据,可填参数(vTopic,vData,vQos,vRetain)  格式组合如下
devMQTT.publish("/maintain/room/master/" + metUUID + "/","send data xxxxxxxx");     
devMQTT.publish("/maintain/room/master/" + metUUID + "/","send data xxxxxxxx",0);     
devMQTT.publish("/maintain/room/master/" + metUUID + "/","send data xxxxxxxx",0,true);     
vTopic  主题
vData  发送数据
vQos   不填默认为0至多一次,1至少1次,2至多一次
vRetain  默认false不保留,true为保留最后一次,当MQTT发送时,另一个客户端不在线,后面在线订阅该主题时会收到最后一次保留的信息。



高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

Archiver|手机版|小黑屋|BBS.UBAINSYUN.COM

GMT+8, 2022-6-30 06:24 , Processed in 0.033607 second(s), 18 queries .

Powered by UBAINS! X3.4

© 2001-2017 UBAINS Inc.

快速回复 返回顶部 返回列表