package com.mqtt.demo.controller;
import com.alibaba.fastjson.JSONObject;
import com.mqtt.demo.config.MessagePublish;
import com.mqtt.demo.config.MqttConfig;
import com.mqtt.demo.entity.QosEnum;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@Component
public class OnOffLineController {
@Autowired
private MqttConfig mqttConfig;
private Logger logger = LoggerFactory.getLogger(OnOffLineController.class);
@PostConstruct
public void getOnOfflineDevice(){
String uuid = UUID.randomUUID().toString();
MemoryPersistence persistence = new MemoryPersistence();
MqttClient mqttClient = null;
try {
mqttClient = new MqttClient(mqttConfig.getBroker(), uuid,persistence);
} catch (MqttException e) {
logger.info("mqtt连接失败!!!");
e.printStackTrace();
}
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName(mqttConfig.getUserName());
options.setPassword(mqttConfig.getPassword().toCharArray());
Map<String,String> res = new HashMap<>();
res.put("clientId",uuid);
res.put("status","disconnected");
String resJson = JSONObject.toJSONString(res);
//立遗嘱,mqtt断开的时候向该主题发送消息
options.setWill("mqtt.onOffLine.status",resJson.getBytes(),2,false);
options.setKeepAliveInterval(2000);
options.setCleanSession(true);
try {
mqttClient.connect(options);
Map<String,String> connectRes = new HashMap<>();
connectRes.put("clientId",uuid);
connectRes.put("status","connected");
MessagePublish messagePublish = new MessagePublish(mqttClient);
messagePublish.isPublish(
"mqtt.onOffLine.status",
JSONObject.toJSONString(connectRes),
QosEnum.QOS2.getType());
} catch (MqttException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
浅谈MQTT监听设备上线与离线方法
共106个文件
xml:80个
class:9个
java:8个
1 下载量 187 浏览量
2024-05-06
12:04:03
上传
评论
收藏 114KB RAR 举报
温馨提示
浅谈MQTT监听设备上线与离线方法
资源推荐
资源详情
资源评论
收起资源包目录
浅谈MQTT监听设备上线与离线方法 (106个子文件)
OnOffLineController.class 3KB
MqttConfig.class 3KB
MqttConnection.class 3KB
MqttMessageListener.class 2KB
MqttMessageListener$1.class 2KB
QosEnum.class 1KB
MessagePublish.class 1KB
MqttApplication.class 697B
DemoApplicationTests.class 525B
mvnw.cmd 7KB
.gitignore 395B
demo.iml 9KB
maven-wrapper.jar 61KB
OnOffLineController.java 2KB
MqttMessageListener.java 2KB
MqttConnection.java 2KB
MessagePublish.java 847B
MqttConfig.java 614B
QosEnum.java 325B
MqttApplication.java 302B
DemoApplicationTests.java 203B
HELP.md 447B
mvnw 11KB
maven-wrapper.properties 233B
workspace.xml 34KB
uiDesigner.xml 9KB
pom.xml 3KB
Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml 811B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_2_6_RELEASE.xml 811B
Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml 790B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml 783B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml 778B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml 776B
Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_test_2_2_6_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml 762B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 742B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml 737B
Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml 734B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml 723B
Maven__org_eclipse_paho_org_eclipse_paho_client_mqttv3_1_2_2.xml 723B
Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml 723B
Maven__org_springframework_boot_spring_boot_test_2_2_6_RELEASE.xml 713B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml 702B
Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml 700B
compiler.xml 697B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml 693B
Maven__org_springframework_spring_context_5_2_5_RELEASE.xml 679B
Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml 678B
Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml 675B
Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 675B
Maven__org_junit_platform_junit_platform_commons_1_5_2.xml 675B
Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 675B
Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml 672B
Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml 672B
Maven__org_junit_platform_junit_platform_engine_1_5_2.xml 668B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml 667B
Maven__com_alibaba_fastjson2_fastjson2_extension_2_0_1.xml 666B
Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml 665B
Maven__org_springframework_spring_test_5_2_5_RELEASE.xml 658B
Maven__org_springframework_spring_core_5_2_5_RELEASE.xml 658B
Maven__org_junit_jupiter_junit_jupiter_params_5_5_2.xml 657B
Maven__org_junit_jupiter_junit_jupiter_engine_5_5_2.xml 657B
Maven__org_junit_vintage_junit_vintage_engine_5_5_2.xml 657B
Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml 653B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml 653B
Maven__org_springframework_spring_web_5_2_5_RELEASE.xml 651B
Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml 651B
Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml 651B
Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml 650B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml 650B
Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml 644B
Maven__org_mockito_mockito_junit_jupiter_3_1_0.xml 640B
Maven__org_junit_jupiter_junit_jupiter_api_5_5_2.xml 636B
Maven__net_bytebuddy_byte_buddy_agent_1_10_8.xml 620B
Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml 615B
Maven__org_apiguardian_apiguardian_api_1_1_0.xml 614B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 610B
Maven__org_junit_jupiter_junit_jupiter_5_5_2.xml 608B
Maven__com_alibaba_fastjson2_fastjson2_2_0_1.xml 596B
Maven__ch_qos_logback_logback_core_1_2_3.xml 589B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 588B
Maven__net_minidev_accessors_smart_1_2.xml 584B
Maven__org_assertj_assertj_core_3_13_2.xml 584B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 579B
Maven__net_bytebuddy_byte_buddy_1_10_8.xml 578B
Maven__org_xmlunit_xmlunit_core_2_6_4.xml 577B
Maven__org_mockito_mockito_core_3_1_0.xml 577B
Maven__org_slf4j_jul_to_slf4j_1_7_30.xml 576B
Maven__org_opentest4j_opentest4j_1_2_0.xml 575B
Maven__org_projectlombok_lombok_1_18_30.xml 573B
Maven__com_fasterxml_classmate_1_5_1.xml 564B
Maven__org_slf4j_slf4j_api_1_7_30.xml 555B
Maven__org_objenesis_objenesis_2_6.xml 550B
Maven__com_alibaba_fastjson_2_0_1.xml 549B
Maven__net_minidev_json_smart_2_3.xml 549B
Maven__org_hamcrest_hamcrest_2_1.xml 539B
Maven__org_yaml_snakeyaml_1_25.xml 537B
Maven__org_ow2_asm_asm_5_0_4.xml 514B
Maven__junit_junit_4_12.xml 497B
共 106 条
- 1
- 2
资源评论
远方的风吹来了“遥遥领先”的声音
- 粉丝: 469
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功