xmpp客户端给ejabberd发送消息,消息处理中的每个工序,都有相关的event,ejabberd通过event的不同调用相关mod。我们可以通过hook这个event就可以让该event的发生时,调用我们自己写的mod。
写一个mod的流程大致如下:
找需要的hook点 -> 在ejabberd源码下新建自己的mod文件,注册hook点,编写hook event的回调函数等 -> 把模块添加到ebin/ejabberd.app中,然后编译安装ejabberd -> 在ejabberd.yml配置文件中启用该mod -> 重启ejabberd或者热更新(ejabberdctl debug,ejabberd_update:update().)
参考:
一些可以hook的events https://www.ejabberd.im/Events%20and%20hooks