Из документов: http://docs.meteor.com/#meteor_publish
Опубликовать функции могут возвращать Collection.Cursor, в этом случае Метеор опубликует документы, которые курсора. Вы также можете вернуть массив Collection.Cursors, и в этом случае Meteor опубликует все курсоры.
Так что на данный момент вы можете вернуть коллекцию только с помощью курсора (результат Collection.find()
).
Чтобы вернуть другие данные, необходимо взломать поток sockjs (для обмена информацией с сервером используется метеор библиотеки сокетов). Помните, что это не гарантирует совместимость с будущими версиями метеора. Sockjs это библиотека используется для метеора для обмена данных между сервером (провод)
от Publish arbitrary data and automatically update HTML *
стороны клиента расслоения плотной
sc = new Meteor._Stream('/sockjs');
sc.on('message', function(payload) {
var msg = JSON.parse(payload);
Session.set('a_random_message', JSON.stringify(msg.data));
});
Template.hello.greeting = function() {
return Session.get('a_random_message');
};
сторона сервера JS
ss = new Meteor._StreamServer();
ss.register(function (socket) {
var data = {socket: socket.id, connected: new Date()}
var msg = {msg: 'data', data: data};
// Send message to all sockets (which will be set in the Session a_random_message of the client
_.each(ss.all_sockets(), function(socket) {
socket.send(JSON.stringify(msg));
});
});
Спасибо. Можно ли сказать, что другой взлом будет создавать коллекцию для любой переменной/объекта, который я хочу опубликовать? – jptsetung