KURA:如何更改 MQTT 消息格式
KURA: how to change the MQTT messages format
KURA MQTT 云客户端根据以下公式 (more details) 发布消息:
#account-name/#client-id/#API-ID/topic
我想用我自己的格式发送MQTT消息,我不想在MQTT消息中发送账户名和客户端id。
我该怎么做?
我已经尝试更改 KURA 网络界面中的配置 -> MQTTData 传输,我删除了 "lwt.topic" 的内容,但没有成功。
直接使用DataService。要求 OSGi 将实例注入到您的组件中。
在您的组件中使用的示例代码 class:
public class MyComponent {
private DataService m_dataService;
public void setDataService(DataService dataService) {
m_dataService = dataService;
}
public void unsetDataService(DataService dataService) {
m_dataService = null;
}
// activate() deactivate() and all required methods
public void publish() {
String topic = "your/topic";
String payload = "Hello!";
int qos = 0;
boolean retain = false;
try {
m_dataService.publish(topic, payload.getBytes(), qos, retain, 2);
s_logger.info("Publish ok");
} catch (Exception e) {
s_logger.error("Error while publishing", e);
}
}
}
在您的组件中 OSGI-INF/mycomponent.xml 通过添加以下内容告诉 OSGi 调用哪些方法来注入数据服务
<reference name="DataService"
interface="org.eclipse.kura.data.DataService"
bind="setDataService"
unbind="unsetDataService"
cardinality="1..1"
policy="static" />
然后你就可以把你需要的题目传给DataService.publish(...)
了。有效负载必须转换为 byte[]
数组。
KURA MQTT 云客户端根据以下公式 (more details) 发布消息:
#account-name/#client-id/#API-ID/topic
我想用我自己的格式发送MQTT消息,我不想在MQTT消息中发送账户名和客户端id。
我该怎么做? 我已经尝试更改 KURA 网络界面中的配置 -> MQTTData 传输,我删除了 "lwt.topic" 的内容,但没有成功。
直接使用DataService。要求 OSGi 将实例注入到您的组件中。
在您的组件中使用的示例代码 class:
public class MyComponent {
private DataService m_dataService;
public void setDataService(DataService dataService) {
m_dataService = dataService;
}
public void unsetDataService(DataService dataService) {
m_dataService = null;
}
// activate() deactivate() and all required methods
public void publish() {
String topic = "your/topic";
String payload = "Hello!";
int qos = 0;
boolean retain = false;
try {
m_dataService.publish(topic, payload.getBytes(), qos, retain, 2);
s_logger.info("Publish ok");
} catch (Exception e) {
s_logger.error("Error while publishing", e);
}
}
}
在您的组件中 OSGI-INF/mycomponent.xml 通过添加以下内容告诉 OSGi 调用哪些方法来注入数据服务
<reference name="DataService"
interface="org.eclipse.kura.data.DataService"
bind="setDataService"
unbind="unsetDataService"
cardinality="1..1"
policy="static" />
然后你就可以把你需要的题目传给DataService.publish(...)
了。有效负载必须转换为 byte[]
数组。