【问题标题】:is there something like a webhook on firebase so that I can increment/decrement presencefirebase 上是否有类似 webhook 的东西,以便我可以增加/减少存在
【发布时间】:2015-03-11 08:28:41
【问题描述】:

我需要将每个聊天室中的在线用户数量同步到我的弹性搜索存储库(搜索房间的存储库)。

有没有办法将 webhook 服务器端附加到在 firebase 中触发的连接和断开连接事件,以便我可以增加和减少弹性搜索记录中的用户计数?

【问题讨论】:

  • 您是否考虑过为此使用 node.js 客户端?该操作可能有点轻量级以保证这一点,但它至少允许您使用当前的 JavaScript SDK 实现它。
  • 那么想法是创建订阅成员路径并在 child_added 和 child_removed 上设置列表器的单个 node.js 客户端吗?客户端是否只为此打开一个套接字连接?我假设我可以得到像 ref_item.parent 这样的东西,这样我就可以知道如果路径像 members/room1/bob,他们将离开/进入哪个房间
  • 您的 node.js 客户端会像往常一样简单地监听相同的事件。它确实会保持连接打开。
  • 例如,请参阅Flashlight,这是一个将 Firebase 同步到 ElasticSearch 的示例应用,还可以通过 Firebase“排队”它们来回答 ES 查询,因此您不需要 RESTful 服务或直接访问到 ES。

标签: firebase


【解决方案1】:

我可能会为此使用 node.js 客户端。这样,您就可以针对您已经在使用的同一个 JavaScript SDK 编写您的客户端。

在该客户端中,您将在相同的路径上订阅相同的事件,就像在常规前端客户端中所做的那样。但是,您只需更新 Firebase 本身中的一个节点,而不是更新 UI。

因此,普通的 Firebase 客户端会:

  • 接受用户输入并将其发送到 Firebase
  • 监听 Firebase 的变化并更新用户的屏幕

此 node.js 客户端将改为:

  • 监听 Firebase 的变化并据此更新 Firebase 中的数据

正如 Kato 提到的:Flashlight 是此类应用程序的一个完美示例,它将数据从 Firebase 同步到 ElasticSearch,并通过 Firebase 对它们进行排队来处理 ES 查询。

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多