0

我正在写一个 ejabberd 模块。它所做的是将一些消息保存到队列中。它实际上工作得很好,只有一件事我在任何文档中都找不到。如果我发现来自特定用户的消息,我需要停止钩子处理。

即一条消息被发送到 ejabberd,从用户 A 到用户 B,我的模块(挂钩到 user_send_packet 钩子)处理这个消息,如果它发现用户 A 是指定的用户,则不能传递它。据我了解,您可以通过停止钩子处理来实现这一点。你如何停止钩子处理?

4

1 回答 1

2

如果您想要从 A -> B 丢弃消息,您可以通过订阅fiter_packet钩子来实现,然后从该返回丢弃丢弃您不想允许的数据包。

据我了解,您可以通过停止钩子处理来实现这一点

不,停止钩子处理将阻止在该钩子上注册的其他处理程序(如果有)被激活,但没有别的,数据包将照常继续。

于 2009-09-10T02:34:54.627 回答