php中的ejabberd模块

时间:2014-05-23 07:24:33

标签: php xmpp ejabberd jabberd2

我正在尝试为ejabberd编写几个模块/过滤器。 在php中成功实现外部auth后,我寄予厚望,我将能够用PHP完成所有工作。

我想要完成的是以下内容:

Ejabberd钩子 - >将数据发送到PHP

PHP使用 ejabberdctl

通过shell_exec()/ exec()访问Ejabberd

PHP回应“Hooks”。

我发现这个SO问题(How to filter messages in Ejabberd)几乎回答了我的问题,但它错过了将数据传递给PHP的部分。

所以我的问题是:

  1. 如何从erlang将数据发送到php(即“%%应该返回已修改的数据包或原子drop以丢弃数据包”部分来自链接的问题)

    < / LI>
  2. 我在哪里可以找到有关ejabberd二进制协议的规范/文档?

1 个答案:

答案 0 :(得分:0)

使用ejabberd过滤xmpp内部域中的消息只能生成一个erlang模块。

您可以尝试使用组件方法。该组件将位于子域中,并能够过滤通过它的消息。您应该像代理域一样使用它,聊天中的所有各方都应该与之交谈。请记住,您的组件应该是一个守护进程,就像监听组件接口上的节进程一样。这在php中并不容易。我已经使用了一个中间python脚本。

根据您的需要,您还可以使用mod_logxml将所有节转储到xml文件中,并使用守护程序读取该文件。

实际上,我最终在节点中重写了整个内容。