【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试
-
参考资料:
mqtt官网 -
依赖包下载:
eclipse.paho.client.mqttv3 -
其他语言版下载
MQTT Client Library
其他库
1.添加网络权限
2.添加库
把下载的库添加到libs
目录下,然后右键Add As Library
3. 建立连接
设置好参数,这里使用本机的emqx服务器
private void mqttInit() throws MqttException { MqttClient mqttClient = new MqttClient( "tcp://192.168.10.7:1883", MqttClient.generateClientId(), new MemoryPersistence() ); mqttClient.connect(); }
可以连接:
4.发布主题
mqttClient.publish("demo","hello".getBytes(StandardCharsets.UTF_8),1,false);
可以收到:
5.订阅主题
订阅:
mqttClient.subscribe("demo2",1);
回调函数:
mqttClient.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable throwable) { } @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { try{ getUITaskDispatcher().asyncDispatch(()->{ textSub.setText("rx ok"); }); } catch (Exception e) { e.printStackTrace(); } } @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { } });
注意,不能在回调函数直接更新UI,如果需要,使用如下方法:
getUITaskDispatcher().asyncDispatch(()->{ //UI更新。。。 });
参考资料