【问题标题】:ejabberd modules in phpphp中的ejabberd模块
【发布时间】:2014-07-12 11:09:15
【问题描述】:

我正在尝试为 ejabberd 编写几个模块/过滤器。 在 php 中成功实现外部身份验证后,我寄予厚望,我将能够在 PHP 中做所有事情。

我想要完成的是:

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

PHP 使用 ejabberdctl

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

PHP 响应“Hooks”。

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

所以我的问题是:

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

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

【问题讨论】:

  • 在erlang中直接写模块有什么问题?
  • 问题是Erlang。

标签: php xmpp ejabberd jabberd2


【解决方案1】:

使用 ejabberd 过滤 xmpp 内部域中的消息只能制作 erlang 模块。

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

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

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

【讨论】:

    猜你喜欢
    • 2012-07-27
    • 2010-12-29
    • 2016-05-24
    • 2018-12-03
    • 2021-07-15
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多