Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 清除会话标志设置为FALSE时,我缺少已发布的值_Android_Mqtt_Messagebroker_Paho - Fatal编程技术网

Android 清除会话标志设置为FALSE时,我缺少已发布的值

Android 清除会话标志设置为FALSE时,我缺少已发布的值,android,mqtt,messagebroker,paho,Android,Mqtt,Messagebroker,Paho,是否有人有一个合乎逻辑的解释,为什么尽管我有clear session flage=false,但当我没有连接到代理时,我没有收到订阅的更新发布消息 当aorementioned标志设置为false时,我运行了我的应用程序,并一直将一些值从PC发布到代理,而不是从Android设备发布到代理。然后我从电脑上拔下安卓设备的usb接口,继续发布一些值。当我再次将usb插入pc时,我希望看到我最近发布到该主题的值,但我没有收到任何值 我发布的主题正是我订阅的主题,QoS=1 您需要发送带有retain

是否有人有一个合乎逻辑的解释,为什么尽管我有clear session flage=false,但当我没有连接到代理时,我没有收到订阅的更新发布消息

当aorementioned标志设置为false时,我运行了我的应用程序,并一直将一些值从PC发布到代理,而不是从Android设备发布到代理。然后我从电脑上拔下安卓设备的usb接口,继续发布一些值。当我再次将usb插入pc时,我希望看到我最近发布到该主题的值,但我没有收到任何值


我发布的主题正是我订阅的主题,QoS=1

您需要发送带有retain标志的消息,以便在重新连接时能够接收消息。QoS定义了代理/客户机将如何努力确保消息被接收


在此阅读QOS、清除会话和保留消息

为了让消息排队等待不再连接到代理的客户端,必须满足以下条件:

客户端最初必须连接到已设置为false的干净会话 客户端必须已订阅QoS>0的服务 指向该主题的消息必须在QoS>0的情况下发布 当客户端重新连接时,它必须具有与断开连接时相同的客户端id 客户端重新连接时,必须将clean session设置为false
我敢打赌,你在后两点中的任何一点上都失败了。

它在QoS部分说。。。。。这意味着,当客户端断开连接时,它拥有的任何订阅都将保留,任何后续的QoS 1或2消息都将被存储,直到将来再次连接。@Matt-保留的消息是另一个问题。很明显,我重新连接了不同的客户端id。这是我的错误提示,我想询问一下,在我的发布和订阅消息中,我是否能够使用passwrd和username?我读了使用通行证和用户名的手册,你至少应该有Mosquetto V3.1版,我的是V1.3.5版。现在我不知道我的版本是V1.3.5还是V3.5,因为在一个网站上,他们将版本指定为一组2个数字,而我的版本是3个数字。此外,通行证和用户名在我的消息中从来都不起作用。这些评论并不是讨论的合适地方。