Определить удаление тем через 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
подразумевать существование новой темы неразумно, если подписаться на темы без гражданства.