我正在尝试使用publish.single
发送消息,然后接收消息并根据收到的数据采取行动。因此,除非我从服务器收到一些东西,否则我无法继续,所以有没有办法在继续之前编写一个等待来自MQTT的消息的语句?
示例代码:
publish.single("$topic", data, ip_address)
#can't do anything here
receive(data_from_broker) #or anythin that looks like it!
#continue with the program here
答案 0 :(得分:2)
简短的回答是你没有。
至少不是你所描述的方式。 MQTT是一种异步协议,没有发送消息和等待响应的意识,发布客户端无法知道是否有0,1或n个订阅客户端监听消息发布的主题。
您需要构建一个名为state machine的内容,以跟踪收到邮件时您在程序流程中的位置。
e.g。
要订阅主题,您必须继续使用publish.single到完整的MQTT客户端,这样您就可以设置onMessage回调来处理传入的消息。