PubNub:仅当给定键和事件不存在其他事件处理程序时,才能添加顶级通配符

时间:2018-03-13 12:00:03

标签: pubnub

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

  1. private.x (其中x是整数)
  2. public.x (其中x是整数)
  3. 我正在尝试创建两个PubNub After-Publish-Or-Fire功能:

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

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

      我的问题:

      1. 我不希望日志功能仅记录public。*频道,而Bot功能将在私有。*频道上执行Bot和Log操作。还有其他方法可以绕过这个限制吗?
      2. 同时执行 Before-Publish-Or-Fire After-Publish-Or-Fire 事件? (也许我可以使用 Before-Publish-Or-Fire 用于Log功能, After-Publish-Or-Fire 用于Bot)?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

Multiple Channels for Logging Data to your Server

异步与同步事件

  

问题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用于记录吗?

     

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

Before and After Event on the same PubNub Channel