>极客内参 > 技术 > 正文

【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试

参考资料: mqtt官网

依赖包下载: eclipse.paho.client.mqttv3

其他语言版下载 MQTT Client Library 其他库

1.添加网络权限

【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试

2.添加库

把下载的库添加到libs目录下,然后右键Add As Library 【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试

3. 建立连接

设置好参数,这里使用本机的emqx服务器

private void mqttInit() throws MqttException { MqttClient mqttClient = new MqttClient( “tcp://192.168.10.7:1883“, MqttClient.generateClientId(), new MemoryPersistence() ); mqttClient.connect(); }

可以连接: 【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试

4.发布主题

mqttClient.publish(“demo“,“hello“.getBytes(StandardCharsets.UTF_8),1,false);

可以收到: 【HarmonyOS应用开发备忘录】一、鸿蒙应用之JavaUI的MQTT客户端测试

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更新。。。 });

参考资料


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

Baidu
map