我目前使用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。 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}]}]}
感謝@Roger的提示。真的很感激它。 – lxnx
對於有相同問題的人,爲了解決這個問題,你需要將rabbit_client和amqp_common放入$ ejabberd/lib目錄。下載鏈接:http://www.rabbitmq.com/releases/rabbitmq-erlang-client/ – lxnx