我是MQTT的新手,我有一些问题,希望你们能帮助我。我正在开展一个学校项目,需要我使用MQTT协议,程序需要用C语言编写。(只是一些背景信息)
MQTT客户端可以同时成为发布者和订阅者吗?也就是说,在不断等待从代理接收消息并执行结果操作的同时,它还能够在需要时将消息发布到代理。
我对MQTT的理解是这样的:MQTT Publisher - > MQTT经纪人 - > MQTT订户
MQTT的异步模式究竟是什么?用白痴术语来说?
谢谢!
答案 0 :(得分:3)
1)是的,没有理由MQTT客户端不能成为已发布和订阅者,这是客户端工作的常规模式。
2)异步MQTT客户端实现是在执行网络操作(发送或接收数据)时不阻止的实现。这意味着所有网络操作都在后台进行,从通常阻塞的任何调用返回一个令牌,可用于检查该操作是否在以后成功。
答案 1 :(得分:1)
1)当你说你的mqtt客户端订阅了某个特定主题时,它意味着它将继续收听它,直到它被取消订阅或者连接被终止。当您说您的mqtt客户端正在发布时,它会将MqttMessage发布到Broker,并且所有订阅的客户端(即侦听)都将收到该消息。所以你只需要自己订阅并开始发布。
2)异步模式不会阻止线程执行任何操作。它只对给定的操作起作用并返回一个令牌,该令牌可用于跟踪并等待操作完成。这与同步模式相反,其中线程被阻塞,直到动作完成到达timeOut周期。
例如:当您以异步模式发布时,将返回一个IMqttDeliveryToken,稍后可以使用它来验证发布操作是否已完成。