如何卸载客户端时如何从代理中删除所有用户特定的订阅主题?

问题描述:

让我说我有一个Android应用程序安装在应用程序和用户订阅了很多主题。现在,如果用户卸载应用程序如何卸载客户端时如何从代理中删除所有用户特定的订阅主题?

我怎样才能从经纪中删除所有用户特定的订阅主题? 我可以取消订阅paho JS客户端使用paho Java客户端订阅主题吗?

在JS方面我这是如何连接和订阅我的经纪人

client.connect({ 
    userName:user, 
    password:password, 
    onSuccess:onConnect, 
    onFailure:onFailure, 
    'willMessage': willMessage 
    }); 

var onConnect = function(frame) { 
    client.subscribe("user/"+clientId+"/msg"); 
}; 
+0

我们在这里需要更多的上下文,您是否使用持久订阅? – hardillb

+0

这并没有什么帮助。你在连接上使用cleanSession标志吗?或者你的意思是干净的留言? – hardillb

+0

连接时没有cleanSession。它不是一个保留消息 – manish

OK,如果不设置cleanSession为false,订阅不应该被坚持。

但它听起来像你正在寻找类似于蚊子的persistent_client_expiration选项的东西,说明在客户端最后一次连接之后要保留这些信息的时间。

不确定rabbitmq是否有类似的选项

+0

如果我卸载我的客户端会发生什么?该客户特定的主题将保留在经纪商那里吗? – manish

+0

我编辑了答案,因为它有一个错误,但是,如果您将cleanSession设置为false,那么如果该客户端永远不会再次登录,给定clientId的订阅将永久保存。 mosquitto选项通过在不使用的情况下过期来处理。 – hardillb

+0

那么如何处理这个问题的机会是,客户端将简单地卸载应用程序,所有订阅的主题将保持在经纪商那里,并且会增加经纪人表现的负担,因为会有越来越多的未使用主题? – manish