在emqx面板设置mqtt会话配置最大消息队列数据是1 . 创建了客户端1,订阅topic1,clean session 设置为false,然后断开。然后创建客户端2,向topic1发送了两条消息,然后重新连接客户端1,这个时候 收到了2条消息。
需要注意的是:当你在面板上改了配置后。客户端 1 先使用 clean session为true,登录成功后(需要把未修改的配置的session给删除掉)再使用 clean session为 false 登录。通过这样的方式来保证在面板的配置是生效了。因为session会缓存上次次的配置。所以这样删除旧session是必要的。
刚试了一下,是可以的。当出来队列满时,会打印下面这段告警。
[warning] clientid: 01, msg: dropped_msg_due_to_mqueue_is_full, peername: 198.18.0.1:61992, topic: t/1, queue: #{len => 1,dropped => 1,store_qos0 => true,max_len => 1}, payload: <<"{\"index\": \"test1\",\n \"doc\": {\"name\": \"emqx\"} \n}">>