Meteorhack: сбой звонка по подписке кластера

У меня есть приложение пользовательского интерфейса на порту 8001 и приложение с именем контракт на порту 7001. У меня установлен и работает кластер. У меня есть подписка и метод вставки, определенные в приложении "контракт".

Контрактный сервер /app.js

Cluster.connect("mongodb://<username>:<passwd>@URL");
var options = {
    endpoint: "http://localhost:7001",
    balancer: "http://localhost:7001", // optional
    uiService: "web" // (optional) read to the end for more info
};
Cluster.register("contracts", options);

var Contracts = new Meteor.Collection('contracts');

Meteor.methods({
    addContract: addContract,
    findContracts: findContracts
});

Meteor.publish("getContracts", function () {
    return Contracts.find({});
});

function addContract(c){
    var data = {
        id: c.id,
        type: c.type
    };
    Contracts.insert(data);
}

function findContracts(){
    var contracts = Contracts.find().fetch();
    return contracts;
}

Я получаю доступ к методам из углового контроллера в моем приложении пользовательского интерфейса.

Сервер приложений пользовательского интерфейса /app.js
Cluster.connect(mongodb://<username>:<passwd>@URL");
var options = {
    endpoint: "http://localhost:8001",
    balancer: "http://localhost:8001" // optional
    //uiService: "web" // (optional) read to the end for more info
};
Cluster.register("web", options);
Cluster.allowPublicAccess("contracts");
Код контроллера приложения UI
var contractConn = Cluster.discoverConnection('contracts');
            contractConn.subscribe('getContracts');
            var SubscribedContracts = new Mongo.Collection('SubscribedContracts', {connection: contractConn});
            console.log('status', contractConn.status());
            vm.contracts = SubscribedContracts.find({}).count();
            contractConn.call("findContracts", function(err, result) {
                if(err) {
                    throw err ;
                }
                else {
                    console.log(result);
                }
            });

Вот что происходит: * Я могу получить доступ к методам на сервере контрактов * Я могу вставить или найти контракты, используя эти методы * Моя подписка не работает. выборка на курсоре показывает 0, а счетчик показывает 0 * Состояние подключения показывает "подключение"

Что я делаю не так с моей подпиской?

Суди

1 ответ

Мне пришлось изменить имя клиентской коллекции mongo на то же имя, что и имя коллекции на сервисе.

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