Определить удаление тем через Push-Diffusion

Я подписался на дерево тем и использую его для обновления значений в таблице HTML. Иногда добавляются новые дочерние темы, а старые дочерние темы удаляются. Мне нужно синхронизировать пользовательский интерфейс, новые темы обнаруживаются, когда приходят значения для неизвестной темы, но я не могу определить, когда удалена подписанная тема.

Как я могу определить, когда тема была удалена?

1 ответ

Решение

Если вы подписываетесь на дерево тем с помощью селектора тем, например ?myTopicTreeRoot//Затем, когда вы делаете этот звонок по подписке, вы также можете указать, что произойдет в случае отказа от подписки, а также подписки, например:

session.subscribe("?myTopicTreeRoot//").on({
    open: function(subscription) {
        console.log('Opened subscription for: ' + subscription.selector);
    },
    update : function(update, topic) {
        console.log('Update for ' + topic + ' : ' + update);
    },
    subscribe : function(details, topic) {
         //This will notify you of every new subscription to a topic in your subtree
        console.log('Subscribed to : ' + topic);
    },
    unsubscribe : function(reason, topic) {
        //This will notify you of every unsubscription from a topic in your subtree
        console.log('Unsubscribed from : ' + topic);
    }
});

Функции собственности subscribe а также unsubscribe призваны к теме myTopicTreeRoot и любой потомок, например myTopicTreeRoot/foo/bar/baz,

Важно: любая подписка заканчивается, когда тема удалена, что, в свою очередь, вызывает unsubscribe,

Обратите внимание, что лучше использовать функцию подписки. Используя первый вызов update подразумевать существование новой темы неразумно, если подписаться на темы без гражданства.

Другие вопросы по тегам