Meteor:无法在另一个流星服务器上连接/运行命令

时间:2017-07-11 10:36:03

标签: meteor

假设我有两个不同的Meteor服务器:一个托管所有业务逻辑的应用服务器(在端口3000上运行),以及一个执行后台任务的作业队列服务器(在端口6000上运行)。

我的应用程序服务器是我定义一堆集合,将SimpleSchema附加到这些集合并生成作业的地方。

作业队列服务器需要能够连接到应用程序服务器,以便它可以使用它的集合,查找要处理的作业等。我在作业队列服务器上尝试了以下内容:

console.log('one');

const Followers = new Mongo.Collection('followers', {
  connection: DDP.connect('http://localhost:3000'),
});

console.log('two');

Followers.insert({
  f: 'some',
  t: 'crap',
});

console.log('three');

Followers是在应用程序服务器上定义的有效集合,所以我希望在这里发生一些事情:

  1. 应尝试更新操作
  2. 应用程序服务器上的SimpleSchema应该启动并拒绝它,因为有效负载是......废话:)
  3. 我希望在控制台中看到所有3个console.log语句,或者至少是上面#2中失败的错误。
  4. 但事实并非如此。作业队列服务器挂起在更新命令上,无法通过它。我在控制台中看到的只有:

    I20170711-06:12:40.070(-4)? one               
    I20170711-06:12:40.091(-4)? two
    

    没有错误消息。我怀疑这是因为作业队列服务器没有正确连接到应用程序服务器。但是,我没有在控制台中收到任何错误消息,所以我在这一点上对于出了什么问题一无所知。

    我尝试将连接字符串协议更改为httphttpsws,没有协议......一切都无济于事。我在这里错过了什么?还想知道身份验证......我的应用服务器如何知道传入服务器ddp连接是否值得信任?

    我能够从作业队列服务器写入MongoDB的唯一方法是完全省略连接字符串,但这会绕过我在应用程序服务器上设置的SimpleSchema,并允许我向Mongo文档提交废话(我假设使用DDP.connect指定具有附加架构的远程集合将阻止此(?))。

    如果有人能帮助阐明这一点,我将不胜感激!

0 个答案:

没有答案