如何创建一个通用机器人(称为SUPER BOT),根据命名的JID,它会采取不同的行动?
我不是指XMPP中常见的单机器人JID策略,即mybot @ host对每个用户的响应不同,我的意思是:
- 根据分配联系人的JID,SUPER BOT应具有不同的行为。机器人本身是独一无二的(“SUPER BOT”),单个实现/单个脚本,机器人本身没有JID,也不能添加到任何人的联系人。
- 公司联系人应该有自己的JID,例如:store1 @ host,它将具有SUPER BOT行为。 SUPER BOT会知道它在store1数据下运行,并且它也会知道它正在与之交互的用户。
- 公司联系人必须通过网络界面作为普通联系人创建,但链接到SUPER BOT(实际上是继承SUPER BOT?一种新型联系人?)。
醇>
公司联系人不能在服务器中拥有自己的文件/脚本,而是必须是普通联系人,服务器中唯一的文件/脚本将是SUPER BOT 。< / p>
示例:对于我的需求,store1 @host必须是继承/实现单件SUPER BOT的联系人,然后机器人将相应地执行store1,由于JID检测到它是store1。
user1会将store1 @ host添加到他的名单中,在进行对话时,SUPER BOT会知道对话是在store1和user1之间进行的。
问题
-
SUPER BOT必须是一个组件?一个模块?协议?什么?
-
最重要的问题:商店/公司JID如何充当超级BOT?如何将所有内容链接在一起?
-
如何禁用直接用户&lt; - &gt;公司对话,但总是创建一个MUC房间/组与用户&lt; - &gt;公司
醇>
帮助说明预期流量的图表:
到目前为止我的发现
我在想像黑客联系人和分配组/角色:(1)用户,(2)公司,然后使用Ejabberd过滤器钩子我将拦截发送给公司用户的消息。这个拦截模块实际上是超级BOT。但是在我看来这种感觉并不正确或可扩展。
PS:虽然我说Ejabberd,但我正在寻找一种XMPP-ish方式,因为我还没有决定使用哪种服务器。