ejabberd moudle 开发 - http modules(二)
继续上一部分,我们已经可以开发一个简单的ejabberd module了,这次让我们开发一个简单的http处理模块。这个http模块可以输出服务器中登录的用户列表(json格式)。
首先,再我们上节的my_module中添加一个process/2导出函数:
-module(mod_http_hello_world).
-author(’your@mail.com’).
-vsn(’1.0′).
-define(EJABBERD_DEBUG, true).
-behavior(gen_mod).
-export([
start/2,
stop/1,
process/2
]).
-include(”ejabberd.hrl”).
-include(”jlib.hrl”).
-include(”ejabberd_http.hrl”).
start(_Host, _Opts) ->
ok.
stop(_Host) ->
ok.
process(_Path, _Request) ->
“Hello World”.
process/2用来处理ejabberd http服务器中的请求,其中第一个参数Path表示url中的路径,比如
http://example.com/this/cool/article 这个URL如果要我们的模块处理,对应的Path为:["this", "cool", "article"],对了,就是路径拆分后的一个list。这里我们先不对路径做任何处理,匹配,我们首先验证我的http handler module是否可以工作。
老规矩,编译module,然后放到ejabbered的ebin目录:
mv mod_http_hello_world.beam /var/lib/ejabberd/ebin
配置ejabberd.cfg,添加我们的module
{modules,
[
{mod_register, [{access, register}]},
…
{mod_http_hello_world, [...]