【问题标题】:PubNub: Top level wildcard can be added only if no other event handlers exist for given key and eventPubNub:仅当给定键和事件不存在其他事件处理程序时,才能添加顶级通配符
【发布时间】:2018-03-17 08:35:53
【问题描述】:

我有两种类型的动态频道 ID:

  1. private.x(其中 x 是整数)
  2. public.x(其中 x 是整数)

我正在尝试创建两个 PubNub After-Publish-Or-Fire 函数:

  1. Bot:用于使用通配符获取私人频道的 Bot 回复:private.*(函数调用我服务器上的 api 并获取 Bot 回复以发布)。
  2. 日志:用于使用通配符记录所有消息:*(函数调用我服务器上的 api 并带有消息并将其保存到我的数据库)。

问题在于,PubNub 似乎无法在同一个频道上支持两个功能。和事件类型

我的问题:

  1. 我不希望日志功能仅记录公共.* 频道,并且 Bot 功能将对私人.* 频道执行 Bot 和 Log 操作。有没有其他方法可以绕过这个限制?
  2. Before-Publish-Or-FireAfter-Publish-Or-Fire 事件是否异步? (也许我可以将 Before-Publish-Or-Fire 用于 Log 功能,将 After-Publish-Or-Fire 用于 Bot)?

【问题讨论】:

  • 嗨@tomn,我们正在审查....

标签: pubnub


【解决方案1】:

只有在给定键和事件不存在其他事件处理程序时才能添加 PubNub 通配符

您希望在两个事件处理程序中重用代码。您提供了自己的答案。您的回答是原始问题中可接受的方法。我们还提供了另一种解决此问题的方法。

  • public.* 频道上记录操作。
  • private.* 频道上的 Bot 和 Log 操作。

您可以创建一个由火灾调用的log 频道。在public.*private.* 函数中,您将触发调用log 通道事件处理程序的火灾。这样,您就可以为日志机制共享代码重用。

异步与同步事件

问题:Before-Publish-Or-FireAfter-Publish-Or-Fire 事件都是异步的吗?

答案:不。只有 on-after 事件是异步的。

考虑这一点的一种自然方式是,任何需要发生的事情before 都必须是阻塞和非异步的。否则不能happen before, and may end up happening after

活动前后

问题:您可以将Before-Publish-Or-Fire 用于BOT 功能,将After-Publish-Or-Fire 用于Logging)吗?

回答:是的!这是一个很好的方法。

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多