在 openfire 中如何创建自定义机器人

问题描述

我有一个要求,其中 n 个聊天室每个都有 x 个参与者,我需要在 openfire 中运行 bot 来收听所有消息,并且对于每条消息,我都发送自定义属性,例如 department="sales",department="manager"。因此,基于自定义属性,我需要将数据推送到不同的 REST API 端点。我听说过 XMPP Bot over Channels 但对此一无所知。那么,我如何使用机器人来实现上述场景。

解决方法

有几种方法可以解决这个问题。最简单的方法可能是编写一个 Openfire 插件,它使用 PacketInterceptor 来侦听感兴趣的节。您可以在 https://download.igniterealtime.org/openfire/docs/latest/documentation/plugin-dev-guide.html

中阅读有关如何开发 Openfire 插件的信息

另一种方法是创建一个自定义客户端,您可以通过该客户端加入您感兴趣的所有聊天室。由于您的客户会像其他任何人一样加入聊天室,它会收到在该房间共享的消息 - 同样,您可以相应地采取行动。

前一种解决方案可能扩展性最好,也可能是最不复杂的。后一种解决方案更容易作为独立进程运行,并且允许您使用与 Openfire 提供的 API 不同的 API。