在ejabberd中创建自定义模块

时间:2017-01-15 10:16:38

标签: erlang

我在ejabberd中创建了自定义模块。主要问题是如果我想在start(HOST)中添加mysql和mnesia支持 - >功能

program ModulusTest;
begin
        if 8 mod 2 = 0 then
        begin
                write(8);
                writeln(' is even');
        end;
        if 30 mod 5 = 0 then
        begin
                write(30);
                writeln(' is divisible by 5');
        end;
        if 32 mod 5 <> 0 then
        begin
                write(32);
                writeln(' is not divisible by 5');
        end;
end.

重新启动ejabberd后,它给了我严重的错误:

$("#WheelList").append("<li><div class='red'><center>" + number + "</center></div></li>"); 

我已经在ejabberd配置文件中添加了新模块。如果我删除

IQDisc = gen_mod:get_opt(iqdisc, Opts, fun gen_iq_handler:check_type/1,
    one_queue),
  Mod = gen_mod:db_mod(Host, Opts, ?MODULE),
  Mod:init(Host, Opts)

我的模块成功启动。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

Mod变量内容似乎是mod_conversation_undefined。了解gen_mod:db_mod/3返回mod_conversation_undefined的原因。

答案 1 :(得分:0)

如果要使用数据库后端,则应创建mod_conversation_ $ BACKEND模块,例如: mod_conversation_mnesia,mod_conversation_sql等 您还应该添加&#39; db_type&#39;模块的mod_opt_type / 1回调选项(否则任何后端都将被忽略,你将获得mod_conversation_undefined)。您可以看看它是如何在其他模块中完成的,例如简单的模块,如mod_private。