【问题标题】:Push arbitrary data to a Meteor server将任意数据推送到 Meteor 服务器
【发布时间】:2013-08-17 00:13:49
【问题描述】:

我正在尝试制作一个仪表板,显示自我们上次部署服务以来的时间。

这是我打算使用的产品:

  1. 部署脚本被调用。
  2. 在脚本结束时,我的 Meteor 服务器会收到脚本的部署通知。
  3. 服务器插入包含部署信息的文档。
  4. 所有客户端都会收到新文档并重新呈现。

我遇到的唯一问题是第 2 步。

最好的方法是服务器可以订阅,客户端可以发布,但服务器似乎不支持订阅。

另一种选择是自己实现 DDP,但如果不在浏览器中,这可能并不容易。

我看过meteor-collectionapi,它是 Meteor 的 REST API,但感觉这违反了 Meteor 原则,并且在使用 Meteor 0.6.5 时它似乎也被破坏了

所以我的问题是,如何通过 Meteor 方式通知服务器更改?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    REST API 没有任何问题。毕竟,HTTP 是 Web 服务器对话的主要语言。

    在服务器上,按如下方式监听(0.6.5代码):

    WebApp.connectHandlers.stack.splice(0,0,{
      route: '/some/long/secret/route',
      handle: function(req, res, next) {
        if(req.method === 'POST') {
          // Listen for deploy information
          // Insert info to DB
        }
      },
    });
    

    然后您就可以curl 正确的地址并提供您想要的任何数据。建议在 POST 参数中包含一个安全秘密,这样一些幸运的爬虫就不会留下不必要的数据。

    【讨论】:

    • 惊人的答案,非常干净!
    • 我想添加到这个答案的唯一想法是我必须使用Meteor.bindEnvironment 插入记录,因为我使用的是异步代码。
    猜你喜欢
    • 2015-07-09
    • 2021-10-16
    • 2014-03-16
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多