物联网平台支持的MQTT协议特性以及与标准MQTT的区别
来源:新闻资讯 /
时间: 2024-11-23
支持的MQTT 5.0特性
MQTT 5.0协议在之前版本基础上添加了大量全新特性,提高了性能和易用性。更多信息,请参见Appendix C. Summary of new features in MQTT v5.0和MQTT 5.0概述。
目前,物联网平台支持MQTT 5.0的部分新增特性如下。
MqttConnectionOptions options = new MqttConnectionOptions();
options.setCleanStart(true);
options.setSessionExpiryInterval(60L);// 单位:秒。
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.connect(options);
MqttProperties mqttProperties = new MqttProperties();
mqttProperties.setSessionExpiryInterval(60L);// 单位:秒。
MqttAsyncClient mqttAsyncClient = new MqttAsyncClient(host, clientId, new MemoryPersistence());
mqttAsyncClient.disconnect(30000, null, null, MqttReturnCode.RETURN_CODE_SUCCESS, mqttProperties);
IntervalString content = "Hello World";
byte[] payload = content.getBytes();
// 创建消息。
MqttMessage message = new MqttMessage(payload);
// 设置消息的服务质量。
message.setQos(1);
MqttProperties mqttProperties = new MqttProperties();
// 设置消息过期时间。
mqttProperties.setMessageExpiryInterval(600L);
message.setProperties(mqttProperties);
// 发布消息。
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.publish(topic, message);
MqttSubscription mqttSubscription = new MqttSubscription("aaa/bbb");
// 设置订阅选项QoS。
mqttSubscription.setQos(1);
// 设置订阅选项No Local。
mqttSubscription.setNoLocal(true);
// 设置订阅选项Retaion As Published。
mqttSubscription.setRetainAsPublished(true);
// 设置订阅选项Retain Handling。
mqttSubscription.setRetainHandling(1);
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.subscribe(new MqttSubscription[]{mqttSubscription});
// 创建保留消息。
String content = "Hello World";
byte[] payload = content.getBytes();
MqttMessage message = new MqttMessage(payload);
// 设置消息为保留消息。
message.setRetained(true);
// 发布消息。
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.publish(topic, message);
// 创建遗嘱消息。
String content = "Will Message";
byte[] payload = content.getBytes();
MqttMessage message = new MqttMessage(payload);
MqttConnectionOptions options = new MqttConnectionOptions();
options.setUserName(USERNAME);
options.setPassword(PASSWORD.getBytes());
// 设置遗嘱消息。
options.setWill(topic, message);
// 设置遗嘱延迟。
MqttProperties willMessageProperties = new MqttProperties();
willMessageProperties.setWillDelayInterval(60L);
options.setWillMessageProperties(willMessageProperties);
// 建立连接。
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.connect(options);
MqttConnectionOptions connOpts = new MqttConnectionOptions();
connOpts.setMaximumPacketSize(1024L);
MqttProperties properties = new MqttProperties();
List<UserProperty> userPropertys = new ArrayList<>();
userPropertys.add(new UserProperty("key1","value1"));
properties.setUserProperties(userPropertys);
MqttProperties properties = new MqttProperties();
properties.setCorrelationData("requestId12345".getBytes());
properties.setResponseTopic("/" + productKey + "/" + deviceName + "/user/get");
MqttConnectionOptions options = new MqttConnectionOptions();
options.setUserName(username);
options.setPassword(password);
MqttClient mqttClient = new MqttClient(host, clientId, new MemoryPersistence());
mqttClient.connect(options);
mqttClient.subscribe("$share/testGroup/user/post", 1);
下一篇: 什么是物联网?常见IoT协议最全讲解