2015-06-10 3 views
0

Я кодирую базовое приложение метеорита, и я спрашиваю себя, как уведомить другую сессию изменения.Meteor - Как я могу уведомить другую сессию

У меня есть основной шаблон, показывающий детали документа. И кто-то может удалить этот документ, Как я могу уведомить другую сессию, которая смотрела этот документ, что он был удален и перенаправлен?

ответ

0

Если документ находится в коллекции и на удаление соответствует удалению документа из коллекции, вы можете использовать метеора observe на коллекции, чтобы зарегистрировать функцию обратного вызова, когда документ вы смотрите удалено:

Documents.find({_id: myDocumentId}).observe({ 
    removed: function() { 
    console.log('document removed'); 
    } 
}); 

и оттуда делать какие-либо манипуляции с DOM/Session вы хотите уведомить клиентов об изменениях.

+0

Большое спасибо за то, что я искал :) – damjuve

0

Если вы показываете свой документ, обратившись непосредственно к клиентской стороне вашей коллекции (т. Е. Вы не используете метод), значения полей страницы должны реагировать, поскольку документ больше не существует.

Что вы можете сделать, это добавить к вашему документу поле deleted, а когда оно изменится на true, вы увидите свое уведомление. Я бы посоветовал использовать что-то вроде модального, поэтому пользователь не может уклониться от него (когда он его закрывает, вы перенаправляете).

Это также означает, что вместо удаления документа другой пользователь просто изменил свое поле deleted на true. После того, как вы установите его в true вы также можете установить время различалось функция, чтобы эффективно удалить документ, например, 5mn позже:

Meteor.setInterval(function() { 
    Document.remove(yourDocumentID); 
    }, 300000) 
+0

Хорошо спасибо за метод setInterval, я думал о том, как это сделать (с флагом на документе), но мне было интересно, если бы был другой способ, например, поймать какое-то событие на другой сессии. – damjuve

+0

Я уверен, что есть другой способ (как всегда), и мне было бы интересно узнать, как это сделать. Тем не менее, это казалось мне самым простым способом. – Billybobbonnet

Смежные вопросы