小编Adi*_*dil的帖子

如何在Erlang中创建全局变量

我正在编写一个ejabberd模块来过滤数据包.我需要使用主机名来提取一些配置gen_mod:get_module_opt().

我有4个重要的功能:

  1. start(Host, _Opt):这是一个加载我的模块的ejabberd函数.我在Host这里得到了原子
  2. filter_packet({From, To, XML}):这是我的数据包过滤器钩子.我无法将自定义参数传递给此函数,因为它是ejabberd中的一个钩子.
  3. get_translation(XmlData):在循环中filter_packet()调用get_translation()
  4. fetch_translation(XmlData):递归调用get_translation().这是我打电话的地方gen_mod:get_module_opt(),因此需要Host.

我的问题是,如何Hoststart()全局变量fetch_translation中获取并将其置于全局变量中以便可以访问它?

erlang hook global-variables ejabberd

15
推荐指数
2
解决办法
2万
查看次数

如何在Ejabberd中过滤消息

我让Ejabberd和测试用户一起运行,并且工作正常.我想编写一个可以拦截消息并修改它们的模块,如下所示:

  1. 拦截"消息"
  2. 将它们发送到php文件
  3. 从同一个php文件中获取结果(立即)
  4. 修改消息节并将其发送到收件人

ejabberd文档很薄弱,教程也不存在.你能给我一些代码来做这个吗?然后我可以想出如何根据我的需要配置它.

谢谢捆绑!

阿迪尔

erlang hook ejabberd

13
推荐指数
1
解决办法
6981
查看次数

标签 统计

ejabberd ×2

erlang ×2

hook ×2

global-variables ×1