2016-09-06 7 views
0

私は現在rabbit_clientを使用してejabberdからキューメッセージを送信しています。このメッセージは、ejabberdフックを使用してトリガーされます。問題なくコンパイルしてインストールできます。rabbitmq - erlangクライアントと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、 "ユーザ名"、 "パスワード"、< <「/">>,"192.168.xx。 [#Fun、#Fun]、[]、[]}、{}、{mod_mymod、send_internal_notice、4、{src、/ src/mod_mymod、xx "、undefined、0,0,10、無限大、 {ejabberd_hooks、run1,3、[{file、 "src/ejabberd_hooks.erl"}、{line、382}}}、{ejabberd_hooks、safe_apply、3、ファイル、 "src/ejabberd_hooks.erl"}、{line、329}}}、{ejabberd_c2s、presence_update、3、{{ファイル、 "src/ejabberd_c2s.erl"}、{line、2068}}}、{ejabberd_c2s、 session_established2,2、[{file、 " src/ejabberd_c2s.erl "}、{line、1249}}}、{p1_fsm、handle_msg、10、{{ファイル、" src/p1_fsm.erl "}、{line、582}}}、{proc_lib、init_p_do_apply、3 、[{ファイル、 "proc_lib.erl"}、{行、247}]}]}

答えて

2

{undef,[{amqp_connection,start,...amqp_connection:start/1機能(undef)定義されていないことを意味します。これは通常、amqp_connectionモジュールがErlangコードパスにないことを意味します。

+0

ヒントのための@Rogerありがとうございました。心から感謝する。 – lxnx

+0

この問題を解決するには、rabbit_clientとamqp_commonを$ ejabberd/libディレクトリに入れる必要があります。ダウンロードリンク:http://www.rabbitmq.com/releases/rabbitmq-erlang-client/ – lxnx

関連する問題