欢迎来到厦门皓佑物联科技有限公司官方网站!
您的位置: 首页 - 新闻资讯 - 物联网平台支持的MQTT协议特性以及与标准MQTT的区别

物联网平台支持的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);

相关产品

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部