2015-01-14 2 views
0

Контекст: Я использую коллекцию Params для вызова метода с сервера на приложение C. Приложение C выполняет свои действия, а затем вызывает RPC-сервер для отправки мне результатов. В результате я получаю Params ID, чтобы удалить соответствующий элемент. С удалением Элемента Params приложение C получает сообщение removed. Я хочу предотвратить это поведение, чтобы избежать перегрузки приложения C-приложений.Реализация добавлена, изменена и удалена с сервера

Я думал о реализации события removed в методе публикации на сервере, чтобы сервер не информировал приложение C. Я просто хочу, чтобы приложение C сообщало о событиях added.

В документе Meteor Doc приведен пример внедрения added и removed, но я не понимаю. Кто-нибудь может мне помочь ?

Я попытался это (не работает вообще):

Meteor.publish('expert_mode_parameters', function() 
{ 
    var self = this; 

    var handle = Expert_Mode_Parameters.find().observeChanges({ 
    added: function() 
    { 
     return Expert_Mode_Parameters.find(); 
    }, 
    removed: function() 
    { 
     return []; 
    } 
    }); 

    self.ready(); 

    self.onStop(function() { 
    handle.stop(); 
    }); 
} 
+0

Что вы подразумеваете под C app? это приложение, написанное на языке C? – ajduke

+0

Да, и приложение связывается с сервером Meteor с websocket. –

ответ

0

Похоже, ваша цель состоит в том, чтобы подписаться на набор данных, но только получать added сообщения, не changed или removed.

Код ниже должен сделать это:

Meteor.publish('expert_mode_parameters', function() { 
    var self = this; 

    var handle = Expert_Mode_Parameters.find().observe({ 
    added: function (document) { 
     self.added("expert_mode_parameters", document._id, document); 
    } 
    }); 

    self.ready(); 

    self.onStop(function() { 
    handle.stop(); 
    }); 
} 

Концепция, вы смотрите результаты Expert_Mode_Parameters.find() и затем вызвать self.added(document), когда есть новый элемент. То же самое можно легко расширить, включив в него changed.

+0

Hum ... Я был близок. Большое спасибо ! –

+0

Выполнение этого сообщения DDP не формируется так же, как в «обычной» публикации. Поле 'id' пусто, данные находятся в' collection' вместо 'fields', который отсутствует в сообщении. Это нормальное поведение, или я делаю что-то неправильно? –

+0

Только что изменил мой ответ. Добавленная функция фактически принимает три аргумента: http://docs.meteor.com/#/full/publish_added – stubailo

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