【发布时间】:2015-11-02 21:58:53
【问题描述】:
我想问一下创建 Meteor 后端的最佳实践。
我使用 Meteor js 作为前端,我打算在另一个端口使用一堆 apache/php/yii 框架/YiiMongoDbSuite 作为后端(管理面板)。
也许有人建议我最好的方法来轻松创建流星应用程序的管理部分?
【问题讨论】:
我想问一下创建 Meteor 后端的最佳实践。
我使用 Meteor js 作为前端,我打算在另一个端口使用一堆 apache/php/yii 框架/YiiMongoDbSuite 作为后端(管理面板)。
也许有人建议我最好的方法来轻松创建流星应用程序的管理部分?
【问题讨论】:
如果您已经在 PHP/Rails 等中构建了后端,您可以考虑使用 DDP 客户端或 REST 在流星和后端之间中继消息。 DDP 与 REST 相比有几个优势
它是一个开放的连接,您甚至可以获取实时更新。
我还不确定是否有任何适用于 PHP 的 DDP 客户端。有几个:
您也可以使用REST 进行通信,但您会错过很多功能。使用 DDP,您可以访问 Meteor.methods 并轻松订阅。
最后,您可以直接连接到您的 mongodb 并放入您的更改。Meteor 将在 10 秒内处理它们。
但是为什么不使用 Meteor 本身作为后端呢?使用单独的 Meteor 实例可能会使您的管理区域更加安全。使用 Meteor 作为后端,维护起来会容易得多,您可以在两者之间共享兼容的代码。您可以使用Meteor.connect 访问客户端实例。
如果您的动机是安全,您可以这样做。当 Meteor 已经让这一切变得如此简单时,使用单独的语言和堆栈几乎没有任何好处。
更新:Meteor 0.7.0 引入了 oplog 拖尾功能,因此您不必再等待 10 秒才能看到更新。它们就像来自流星本身一样是瞬间的。
【讨论】:
Meteor 直接监听 MongoDB 数据库,因此那里的任何更改都会自动更新应用程序。这意味着如果您想从 PHP 写入 MongoDB,您可以,然后流星将自动检测更改并更新字体结尾。
我相信这也适用于numtel's meteor mysql package。如果您想开始将流星用于需要实时更新或在项目中缓慢迁移的组件,这将变得非常容易。
我们目前正在为我们的实时通知系统尝试此功能。我认为我们必须学习使用 DDP,但实际上它就像让两个系统监听同一个 DB 一样简单。
【讨论】: