rabbitmq - erlang客户端与ejabberd模块集成

时间:2016-09-06 10:50:31

标签: erlang rabbitmq ejabberd

我目前正在使用rabbit_client从我们的ejabberd发送队列消息。使用ejabberd钩子触发此消息。可以成功编译和安装,没有任何问题。

尝试创建连接时,我一直收到同样的错误。如果有人能就这个问题提供一些线索,那就表示赞赏。

以下是用于连接和发布消息的代码。

{ok, Connection} =
    amqp_connection:start(#amqp_params_network{host = "192.168.xx.xx", username = "username", password= "password"}),
{ok, Channel} = amqp_connection:open_channel(Connection),

amqp_channel:call(Channel, #'queue.declare'{queue = <<"hello">>}),

amqp_channel:cast(Channel,
                  #'basic.publish'{
                    exchange = <<"">>,
                    routing_key = <<"hello">>},
                  #amqp_msg{payload = <<"Hello World!">>}),
io:format(" [x] Sent 'Hello World!'~n"),
ok = amqp_channel:close(Channel),
ok = amqp_connection:close(Connection),
ok.

错误

  

{是undef,[{amqp_connection,启动,[{amqp_params_network, “用户名”, “口令”,&LT;&LT; “/” &GT;&GT; “192.168.xx.xx”,未定义,0,0, 10,无穷大,无,[#娱乐,#趣味],[],[]}],[]},{mod_mymod,send_internal_notice,4,[{文件, “SRC / mod_mymod.erl”},{线,67 }]},{ejabberd_hooks,safe_apply,3,[{文件, “SRC / ejabberd_hooks.erl”},{线,382}]},{ejabberd_hooks,run1,3,[{文件, “SRC / ejabberd_hooks.erl” },{线,329}]},{ejabberd_c2s,presence_update,3,[{文件, “SRC / ejabberd_c2s.erl”},{线,2068}]},{ejabberd_c2s,session_established2,2,[{文件,” SRC / ejabberd_c2s.erl “},{线,1249}]},{p1_fsm,HANDLE_MSG,10,[{文件,” SRC / p1_fsm.erl“},{线,582}]},{proc_lib,init_p_do_apply,3- ,[{文件, “proc_lib.erl”},{线,247}]}]}

1 个答案:

答案 0 :(得分:2)

{undef,[{amqp_connection,start,...表示未定义amqp_connection:start/1函数(undef)。这通常意味着amqp_connection模块不在Erlang代码路径中。