#amqp #elixir #qpid #erlang-shell
#amqp #elixir #qpid #erlang-оболочка
Вопрос:
я использую ActiveMQ в качестве посредника сообщений и использовал библиотеку Qpid proton c для подключения к Erlang для службы обмена сообщениями и, похоже, хорошо работает с приведенными ниже командами при запущенном ActiveMQ.
qpidpn:subscribe("amqp://127.0.0.1/topic://destination").
qpidpn:publish(#{address => "amqp://127.0.0.1/topic://destination", body => "hello"}).
flush().
qpidpn:stop().
q().
Мне нужно написать модуль в elixir для подключения к брокеру ActiveMQ так же, как это сделано в erlang выше.
Хотя Erlang подключен к службе посредника сообщений с использованием библиотеки qpid. Пожалуйста, предложите.
Ответ №1:
Я не пробовал приведенный ниже код, но вызов библиотеки Erlang из Elixir довольно тривиален.
Попробуйте это:
:qpidpn.subscribe("amqp://127.0.0.1/topic://destination")
:qpidpn.publish(%{:address => "amqp://127.0.0.1/topic://destination", :body => "hello"})
:flush()
:qpidpn.stop()
:q()
Как я уже сказал, я не пробовал (и не могу, потому что у меня не установлены amqp или qpidn), но это может быть похоже на то, что вы ищете.
Комментарии:
1. flush() и q() доступны только в оболочке Erlang. Они не должны быть нужны в модуле, который OP хочет записать.