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.jsCluster.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");
Код контроллера приложения UIvar 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 на то же имя, что и имя коллекции на сервисе.