我试图将 Horizon 应用程序与外部托管的 RethinkDB 放在一起,但我似乎无法让它与现有工具一起使用。我了解 Horizon 包含一个服务器端 API 组件,这可能就是原因。
我希望能够从外部服务器直接在我的 RethinkDB 中插入和/或更新文档,并将这些更新推送到订阅的浏览器。这是可能的和/或明智的吗?
最好这根本不会涉及我的 Horizon Express 服务器。我宁愿不必公开自己的 API 来执行此操作。
我试图将 Horizon 应用程序与外部托管的 RethinkDB 放在一起,但我似乎无法让它与现有工具一起使用。我了解 Horizon 包含一个服务器端 API 组件,这可能就是原因。
我希望能够从外部服务器直接在我的 RethinkDB 中插入和/或更新文档,并将这些更新推送到订阅的浏览器。这是可能的和/或明智的吗?
最好这根本不会涉及我的 Horizon Express 服务器。我宁愿不必公开自己的 API 来执行此操作。
只要 RethinkDB 实例对以某种方式将数据推送到 RethinkDB 的服务可见,这是完全可能的。然后,您只需使用您选择的语言通过标准驱动程序连接连接到 RethinkDB 。Python 中的简单代码如下所示:
import rethinkdb as r
conn = r.connect('localhost', 28015)
r.db("horizon_project_name").table("things").insert({'text': 'Hello, World!'}).run(conn)
然后,当您启动 Horizon 时,您需要确保使用该--connect
标志并提供同一个 RethinkDB 实例的主机名和端口。
例如,如果 RethinkDB 与 Horizon 运行在同一台机器上:
hz serve --connect localhost:28015
在 Horizon 中,您可以在浏览器中像这样收听这些消息:
const horizon = Horizon();
horizon('things').subscribe((result) => {
// `result` is the entire collection as an array
console.log("result!", result);
});
如果您在这方面需要进一步的帮助,请随时给我发推文@dalanmiller或在 Discussion.horizo n.io中创建一个新主题!