基于paho在android平台上实现MQTT Client间的简单通信
https://blog.youkuaiyun.com/daihuimaozideren/article/details/78118793
个人理解:
1、分为broker和client,broker是服务器相当于中转站,client1、2、3任何一个将消息推送到broker上,其他所有订阅了该topic的client都会收到推送。
2、thingsboard平台的服务器端有一个broker,broker可以使用mosquito,Apollo。。。,设备将数据推送到该主题:
v1/devices/me/telemetry服务器端订阅该主题,就会实时把数据显示出来,就是说。。。做客户端的web应用时候,展现实时数据也可以用mqtt?,mqtt有JavaScript版的接口和包。
3、我的转发服务器,假设都采用mqtt收发data。
发数据:向TB的broker发送主题消息
MqttMessage msg=new MqttMessage();
String msgStr="Hello World";
msg.setPayload(msgStr.getBytes());//设置消息内容
msg.setQos(2);//设置消息发送质量,可为0,1,2.
msg.setRetained(false);//服务器是否保存最后一条消息,若保存,client再次上线时,将再次受到上次发送的最后一条消息。
mClient.publish("my topic",msg);//设置消息的topic,并发送。这里需要对发送质量进行再次说明。
(0)level0,最多一次的传输。不管消息是否到达broker,只要发出,client不再关心。
(1)level1,至少一次的传输。若消息到达broker,broker会回复client一个PUBACK消息,若未收到该回复消息,或超时,client将再次发送,直至收到broker响应。
(2)level2,这是最高级别的传输。在level1的基础上,保证重复消息不会被二次接收。断开与broker的连接:
try {
if(mClient!=null){
mClient.disconnect();
}
} catch (MqttException e) {
e.printStackTrace();
}接收推送:订阅broker的某个主题
subscribe订阅不成功的原因:
Topic只能写不包含通配符的,但是订阅时传进去的参数topicFilter需要包含通配符
https://blog.youkuaiyun.com/putiancaijunyu/article/details/78549834
本文介绍了MQTT协议的基本概念及其实现方式,包括Broker和Client的角色定义,以及如何通过paho库在Android环境中实现简单的MQTT通信。还讨论了不同服务质量级别(QoS)的区别,以及如何使用JavaScript版本的MQTT接口进行web应用开发。
5万+

被折叠的 条评论
为什么被折叠?



