我在端口 8001 上有一个 UI 应用程序,在端口 7001 上有一个名为 contract 的应用程序。我已经安装并运行了“集群”。我在“合同”应用程序中定义了一个订阅和插入方法。
“合同”服务器/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;
}
我正在从我的 UI 应用程序中的角度控制器访问这些方法。
UI 应用服务器/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");
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);
}
});
这就是正在发生的事情: * 我可以访问合同服务器上的方法 * 我可以使用这些方法插入或查找合同 * 我的订阅不起作用。游标上的 fetch 显示 0 并且 count 显示 0 * 连接上的状态显示“正在连接”
我的订阅做错了什么?
苏迪