2016-12-01 7 views
0

Скажем, у меня есть приложение для 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

ответ

1

OK, если вы не устанавливая cleanSession ложных то подписок не должно сохраняться.

Но похоже, что вы ищете что-то похожее на параметр persistent_client_expiration от mosquitto, в котором говорится, как долго хранить эту информацию после последнего подключения клиентов.

Не уверен, что если RabbitMQ имеет аналогичный вариант

+0

Что произойдет, если я удалю свой клиент? будет ли конкретная тема для клиента оставаться на брокере? – manish

+0

Я отредактировал ответ, поскольку у него была ошибка, но если у вас установлено значение cleanSession на false, подписки для данного clientId будут храниться вечно, если этот клиент никогда не войдет в систему снова. Опция москитов имеет дело с этим, истекшие вещи, если они не используются. – hardillb

+0

Тогда как справиться с этим, возможно, клиент просто удалит приложение, и все подписанные темы останутся в брокере, и это поднимет нагрузку на производительность брокера, так как будут возникать неиспользованные темы? – manish