问题描述
有帮助吗?我有一个物联网设备,正在使用MQTT进行发布/订阅。我想在“发布/订阅”控制台中查看消息,但是可能需要一个小时才能显示出来,有时甚至根本看不到。我单击“查看消息”,它显示了几天前的消息。等待几分钟,然后再次单击,将显示一些较新的消息,但没有我需要看到的消息。继续这样做一个小时左右,最后我走到尽头,它可能有也可能没有最新消息。如果几天后再回来,那么我会看到我希望看到的消息。如何快速查看最新消息?
这是我的订阅设置的屏幕截图。我已经尝试过Retain = Yes和No。
这是我今天进行的第一次拉拔的屏幕截图。几天的旧消息。我确实选中了“启用ACK消息”,并根据顶部的注释“一次仅提取几条消息”。但是,正如您在以后的屏幕截图中看到的那样,我以相同的效果将其关闭。
几分钟后,我们就在这里。不是很清楚今天的消息,而是越来越近。
等待几分钟,好吧,现在又出现了一条消息,但糟糕!输了最新的。嗯。
让我们关闭“启用ACK消息”。不,还是一样。
Enable ACK messages unchecked,top of the page
Enable ACK messages unchecked,bottom of the page
再等五分钟,糟糕! 17日再次丢失了该消息。从今天起还是一无所有。已经大约二十分钟了,我现在要放弃了。将在一个小时左右的时间内再次检查。
您有这个问题吗?您如何解决呢?
解决方法
如果有很多消息发布到某个主题,则控制台将不是查找和查看特定消息的好方法。控制台是获取正在发布的消息样本的好方法,但是不能保证将返回哪些消息。此外,除非使用ordering keys and an ordered subscription,否则Cloud Pub / Sub不提供任何订购保证。
通过控制台检索消息时,Pull请求将发送到服务器。服务器将尝试尽快通过消息满足此请求,并且它将从任何分布式服务器首先返回消息的地方获取消息。这意味着消息可能随时发布。如果单击该按钮发出更多请求,则将再次发生。
如果您要检查特定的消息,则应该设置订阅者以阅读消息并检查正在寻找的消息,这可能是通过使用Cloud Pub/Sub client libraries来完成的。