当我publish了一个消息之后,再启动subscribe去订阅的时候无法订阅到这个消息,而如果是已经启动了subscribe的话,publish一个消息的时候是能够接收到这个订阅的。到底是啥情况呢?难道是我对协议的理解姿势有问题?
有疑问加站长微信联系(非本文作者)

当我publish了一个消息之后,再启动subscribe去订阅的时候无法订阅到这个消息,而如果是已经启动了subscribe的话,publish一个消息的时候是能够接收到这个订阅的。到底是啥情况呢?难道是我对协议的理解姿势有问题?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
我也遇到过类似的情况,跟exchange 和queue的性质有关系。
这和exchange模式有关。exchange模式为fanout的时候,如果接受到消息的Exchange没有与任何Queue绑定,则消息会被抛弃。我自己做测试,如果将模式设定为direct,就没有上述的行为。
先理解mqtt协议 你这情况就是正常的 publish的mqtt topic里retain=true,则publish后再有订阅,订阅可收到