我有两个需要同步的应用程序.其中一个将从用户接收数据,另一个将显示数据.两个应用程序都可以在不同的服 它们可能在某些时候断开连接,并且需要继续工作直到重新连接,因此我将从第二个应用程序上的第一个应用程序复制数据.
在我发现的Meteor文档中,DDP.connect(url)但我不确定如何使用它.我发现了许多问题和示例,使用DDP将非Meteor应用程序与Meteor连接,但没有关于连接两个Meteor应用程序的问题.
我的第一种方法是这样的:
申请1
Items = new Meteor.Collection('items');
Items.insert({name: 'item 1'});
if (Meteor.isServer) {
Meteor.publish('items', function() {
return Items.find();
});
}
Run Code Online (Sandbox Code Playgroud)
申请2
Items = new Meteor.Collection('items')
if (Meteor.isServer) {
var remote = DDP.connect('http://server1.com/);
remote.onReconnect = function() {
remote.subscribe('items');
var items = Items.find();
console.log(items.count()); // expected to be 1 but get 0
}
}
Run Code Online (Sandbox Code Playgroud)
在第二个应用程序中,如何从第一个应用程序中获取项目?
Cam*_*ilo 34
我从这个问题得到了一个线索如何正确使用Meteor.connect()连接另一个Meteor服务器.我错过了它,因为它是关于旧的Meteor.connect()改变了DDP.connect().
这适用于客户端和服务器
var remote = DDP.connect('http://server1.com/');
Items = new Meteor.Collection('items', remote);
remote.subscribe('items', function() {
var items = Items.find();
console.log(items.count()); // get 1
});
Run Code Online (Sandbox Code Playgroud)
现在我可以使用应用程序2来监视应用程序1中的更改 Items.find().observe()
警告
Meteor上有一个错误会阻止应用程序之间的连接:
更新
这个bug已经解决了
更新2
这是一个使用Meteor 0.6.6.2测试的示例项目https://github.com/camilosw/ddp-servers-test
| 归档时间: |
|
| 查看次数: |
9005 次 |
| 最近记录: |